什么是高并发

高并发指通过设计保证系统能够同时并行处理很多请求,是分布式系统非常重要的概念 评价分布式系统性能的指标有:

  1. 响应时间:系统对请求做出响应的时间。
  2. 吞吐量:单位时间内处理的请求数量。
  3. QPS(和吞吐量基本没啥区别):每秒响应请求数。
  4. 并发用户数:同时承载正常使用系统功能的用户数量。

水平扩容和垂直扩容

那么如何实现高并发呢? img 上图都是实现高并发的方法,而这里只介绍水平扩容和垂直扩容

垂直扩容

这是过去一直在使用并且可以马上见效的方法,但是缺点也很致命,垂直扩容有两种方案

  1. 提升单机硬件配置 例如:增加CPU核数如32核,升级更好的网卡如万兆,升级更好的硬盘如SSD,扩充硬盘容量如2T,扩充系统内存如128G;
  2. 改善单机架构 例如:使用Cache来减少IO次数,使用异步来增加单服务吞吐量,使用无锁数据结构来减少响应时间; 但是这种方式势必会受到科技的限制,性能有极限,如果想突破这种极限,实现线性上升,就需要水平扩容

水平扩容

增加服务器数量,把请求尽量均匀地分配到各个服务器上,这也是分布式系统的目标。 举个例子,通常一个域名绑定一个IP,而一个IP对应一个服务器,当很多用户访问,响应速度会变慢,而采用nginx反向代理,把域名绑定到多个IP,利用dns轮询技术实现均衡负载,可以显著提高响应速度,而且没有极限