高并发
高并发相关的一些指标
- 相应时间:系统对请求做出相应的时间。
- 吞吐量:单位时间内处理请求的数量
- QPS:每秒请求数。
- 并发用户数:同时承载正常使用系统功能的用户数量,例如一个即时通讯系统,同时在线量一定程度上代表了系统的并发用户数。
如何提升系统的并发能力
互联网分布式架构设计,提高系统吞吐量的方式有两种:垂直扩展,水平扩展
垂直扩展:提升单机处理能力
- 增强单机硬件能力:增加CPU核心数,升级更高配置的网卡,升级更好的SSD硬盘,扩充系统的内存
- 提升单机架构性能:使用Cache来减少IO次数,使用异步来增加单服务吞吐量,使用无锁数据结构来减少相应时间
水平拓展
只要增加服务器的数量,就能线性的扩充系统性能,水平扩展对系统架构设计是有要求的
常见的互联网分层架构
- 反向代理:隐藏真正的服务端,用户只知道代理服务器的地址
- 正向代理:隐藏真正的客户端,类似于代理访问外网的服务器,谷歌只知道代理服务器的地址,不知道客户端的地址。
- 反向代理层的水平扩展
反向代理层的扩展是通过“DNS轮询”实现的,dns-service对于一个域名配置了多个解析ip,每次DNS解析请求时,就轮流返回这些ip地址。
当nginx变成瓶颈时,就新增服务器,新增nginx服务器的部署,增加一个新增的ip地址,就能无限的扩展反向代理层的性能,做到理论上的无限高并发。
- 站点层的水平扩展
站点层的水平扩展是通过nginx实现的,当web后端成为瓶颈时,可以通过增加服务器数量,部署web后端,通过修改nginx.conf来实现的,可以设置多个web后端,在nginx的配置中更新上新的服务器就可以在站点层实现扩展。
- 服务层的水平扩展
服务层的扩展是通过连接池来实现的,站点层通过RPC-client调用下游PRC-server时,client中的连接池会建立与下游服务的多个连接,当服务称为瓶颈时,只要增加服务器数量即可。
- 数据层的水平扩展
在数据量很大的时候,数据层涉及数据的水平扩展,将原本存储在一台服务器上的数据水平拆分到不同的服务器上。
本文来自博客园,作者:两小无猜,转载请注明原文链接:https://www.cnblogs.com/charlottepl/p/13255415.html