高并发概念
高并发(High Concurrency)它通常是指,通过设计保证系统能够同时并行处理很多请求。
高并发重要指标

  1. 响应时间(Response Time):系统对请求做出响应的时间。例如系统处理一个HTTP请求需要200ms,这个200ms就是系统的响应时间。
  2. 吞吐量(Throughput):单位时间内处理的请求数量。
  3. 每秒查询率QPS:每秒响应请求数。在互联网领域,这个指标和吞吐量区分的没有这么明显。
  4. 并发数: 系统同时处理的request/事务数
    并发数= QPS*平均响应时间
  5. 系统用户数:系统额定的用户数量,如一个OA系统,可能使用该系统的用户总数是5000个,那么这个数量,就是系统用户数。
  6. 同时在线用户数:在一定的时间范围内,最大的同时在线用户数量。
  7. 并发用户数:同时承载正常使用系统功能的用户数量。例如一个即时通讯系统,同时在线量一定程度上代表了系统的并发用户数。
    C=nL / T
    其中C是平均的并发用户数,n是平均每天访问用户数(login session),L是一天内用户从登录到退出的平均时间(login session的平均时间),T是考察时间长度(一天内多长时间有用户使用系统)
  8. 并发用户数峰值:
    C^=C + 3*根号C
    其中C^是并发用户峰值,C是平均并发用户数,该公式遵循泊松分布理论。

高并发方法论
主要有两种:垂直扩展(Scale Up)与水平扩展(Scale Out)
垂直扩展:提升单机处理能力
1>增强单机硬件性能
提升CPU核数
提升网卡
提升硬盘如SSD,
扩充硬盘容量
扩充内存
2>提升单机架构性能
数据库池,
线程池
内存池
无锁编程
高效算法
水平扩展:增加服务器数量,就能线性扩充系统性能。
水平扩展对系统架构设计是有要求的,如何在架构各层进行可水平扩展的设计,必须了解架构分层。
常见的架构分层

高并发(三)

(1)客户端层:典型调用方是浏览器browser或者手机应用APP
(2)反向代理层:系统入口,反向代理
(3)站点应用层:实现核心应用逻辑,返回html或者json
(4)服务层:如果实现了服务化,就有这一层
(5)数据-缓存层:缓存加速访问存储
(6)数据-数据库层:分库分表,读写分离
整个系统进行各层次的水平扩展

高并发技术方案:提高高并发能力

高并发(三)

1.分布式缓存:redis、memcached等,结合CDN来解决图片文件等访问。
2.消息队列中间件:activeMQ等,解决大量消息的异步处理能力。
3.应用拆分:一个工程被拆分为多个工程部署,利用dubbo解决多工程之间的通信。
4.数据库垂直拆分和水平拆分(分库分表)等。
5.数据库读写分离,解决大数据的查询问题。
6.还可以利用nosql ,例如mongoDB配合mysql组合使用。
7.还需要建立大数据访问情况下的服务降级以及限流机制等。

相关文章:

  • 2021-09-18
  • 2021-11-28
  • 2021-04-18
  • 2021-08-08
  • 2022-12-23
  • 2021-10-19
  • 2021-11-21
猜你喜欢
  • 2021-11-29
  • 2022-02-11
  • 2022-02-10
  • 2021-11-10
  • 2022-12-23
  • 2021-11-14
  • 2021-06-17
相关资源
相似解决方案