高并发架构设计的一些思考

高并发架构设计先从 What,Why,How 简单三方面来梳理:

What ?

能力          

单位时间内(秒)系统能够并发处理的读写请求

主要指标

响应时间:系统对请求做出响应的时间。可以简单理解为一个http请求返回客户端所用的时间

吞吐量:单位时间内处理的请求数量。

QPS:每秒可以处理的请求数

并发用户数:同时承载正常使用系统功能的用户数量。多人同时使用该系统,并且系统正常运行。此时用户数量就是并发用户数

Why?

价值 :用户体验    

业绩增长: 抢购活动 红包活动

How?

问题 : 先搞清楚问题的本质

做:      分层;垂直扩展;水平扩展

垂直扩展

提升单机处理能力

增强单机硬件性能

  • 增加CPU核数     如32核
  • 升级更好的网卡  如万兆
  • 升级更好的硬盘  如SSD
  • 扩充硬盘容量      如2T
  • 扩充系统内存      如128G

提升单机架构性能

  • 热点Cache减少IO次数
  • 异步化增加单服务吞吐量
  • 无锁化减少响应时间          

在互联网业务发展非常迅猛的早期,如果预算不是问题,强烈建议使用“增强单机硬件性能”的方式提升系统并发能力,因为这个阶段,公司的战略往往是发展业务抢时间,而“增强单机硬件性能”往往是最快的方法。      

水平扩展

不管是提升单机硬件性能,还是提升单机架构性能,都有一个致命的不足:单机性能总是有极限的。所以互联网分布式架构设计高并发终极解决方案还是水平扩展。

分层架构中,各层次水平扩展的实践又有所不同:

(1)负载均衡层:可以是DNS,可以是LVS,可以是反向代理;通过在不同的层次中的负载均衡方式来进行水平扩展;

(2)网关层:可以通过统一的接入网关来进行统一入口;

(3)服务层:可以通过拆分服务和连接池来进行水平扩展;

(4)存储层:可以按照数据规模,进行分库分表,主备,主从,集群,分片等多种方式进行水平扩展;

各层实施水平扩展后,能够通过增加服务器数量的方式来提升系统的性能,做到理论上的性能无限。

提升认知和格局

  • 了解问题的本质
  • 站在更高的角度上思考问题,以及看待人和事。

搭建技术知识体系结构

丰富自己的知识点

  • 深挖各知识点,理解底层的原理
  • 跳出局部思维,建立索引自己的知识索引
  • 多总结归纳各知识点,能点、线、面串起来。

提升自身的能力

提升发现问题、分析问题、解决问题的能力。

后续会系统性更新一些架构设计的文章。

猜你喜欢

转载自blog.csdn.net/SkyChaserYu/article/details/105800080
今日推荐