高并发、高性能、高可用

原创
10/14 17:38
阅读数 16

一. 高并发

高并发是现在互联网分布式框架设计必须要考虑的因素之一,它是可以保证系统能被同时并行处理很多请求,对于高并发来说,它的指标有:

响应时间:系统对进来的请求反应的时间,比如你打开一个页面需要1秒,那么这1秒就是响应时间。

吞吐量:吞吐量是指每秒能处理多少请求数量,好比你吃饭,每秒能吃下多少颗米饭。

秒查询率:秒查询率是指每秒响应请求数,和吞吐量差不多。

并发用户数:同时承载正常使用系统功能的用户数量。例如一个即时通讯系统,同时在线量一定程度上代表了系统的并发用户数。

二. 高性能

什么是高性能呢?高性能是指程序处理速度非常快,所占内存少,cpu占用率低。高性能的指标经常和高并发的指标紧密相关,想要提高性能,那么就要提高系统发并发能力,两者互相捆绑在一起。应用性能优化的时候,对于计算密集型和IO密集型还是有很大差别,需要分开来考虑。还有可以增加服务器的数量,内存,IO等参数提升系统的并发能力和性能,但不要浪费资源,要考虑硬件的使用率最高才能发挥到极致。

怎么样提高性能呢?

  • 避免因为IO阻塞让CPU闲置,导致CPU的浪费
  • 避免多线程间增加锁来保证同步,导致并行系统串行化
  • 避免创建、销毁、维护太多进程、线程,导致操作系统浪费资源在调度上

 

三. 高可用

高可用通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。

高可用注意如果使用单机,一旦挂机将导致服务不可用,可以使用集群来代替单机,一台服务器挂了,还有其他后备服务器能够顶上。

或者使用分布式部署项。比如现在redis的高可用的集群方案有: Redis单副本,Redis多副本(主从),Redis Sentinel(哨兵),Redis Cluster,Redis自研。

 

四.构建一个三高的系统,到底可以从哪些方面下手呢?

大概可以从以下方面入手:横向分层、纵向分割、分布式化、集群化、使用缓存、使用异步模式、使用冗余、自动化(发布、部署、监控)。

具体来说,可以在不同层次常用的技术有:

前端

  • 浏览器优化技术:合理布局,页面缓存,减少http请求数,页面压缩,减少 cookie 传输。
  • CDN
  • DNS负载均衡
  • 动静分离
  • 动态图片独立提供服务
  • 反向代理

应用层架构

  • 业务拆分
  • 负载均衡
  • 虚拟化服务器、容器化
  • 无状态(以及分布式 Session)
  • 分布式缓存
  • 异步、事件驱动架构、消息队列
  • 多线程
  • 动态页面静态化

服务层架构

  • 分布式微服务(分级管理,超时设置,异步调用,服务降级,幂等性设计。)
  • 同应用层架构

存储层架构

  • DFS
  • 关系数据库路由
  • No SQL 数据库
  • 数据同步
  • 数据冗余

安全架构

  • Web攻击(XSS、Sql Injection)
  • 数据加密
  • 密钥管理

发布、运维

  • 自动化测试与发布
  • 灰度发布
  • 浏览器数据采集
  • 服务器业务数据采集
  • 服务器性能数据采集
  • 系统监控
  • 系统报警

机房

  • 散热、省电、定制服务器

以上,就是建设互联网三高架构可能涉及到的知识点

(内容来自网络)

 

展开阅读全文
打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部