黑马程序员:高并发解决方案一、什么是高并发高并发(HighConcurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求
高并发相关常用的一些指标有响应时间(ResponseTime),吞吐量(Throughput),每秒查询率QPS(QueryPerSecond),并发用户数等
响应时间:系统对请求做出响应的时间
例如系统处理一个HTTP请求需要200ms,这个200ms就是系统的响应时间
吞吐量:单位时间内处理的请求数量
QPS:每秒响应请求数
在互联网领域,这个指标和吞吐量区分的没有这么明显
并发用户数:同时承载正常使用系统功能的用户数量
例如一个即时通讯系统,同时在线量一定程度上代表了系统的并发用户数
二、什么是秒杀秒杀场景一般会在电商网站举行一些活动或者节假日在12306网站上抢票时遇到
对于电商网站中一些稀缺或者特价商品,电商网站一般会在约定时间点对其进行限量销售,因为这些商品的特殊性,会吸引大量用户前来抢购,并且会在约定的时间点同时在秒杀页面进行抢购
此种场景就是非常有特点的高并发场景,如果不对流量进行合理管控,肆意放任大流量冲击系统,那么将导致一系列的问题出现,比如一些可用的连接资源被耗尽、分布式缓存的容量被撑爆、数据库吞吐量降低,最终必然会导致系统产生雪崩效应
一般来说,大型互联网站通常采用的做法是通过扩容、动静分离、缓存、服务降级及限流五种常规手段来保护系统的稳定运行
三、扩容由于单台服务器的处理能力有限,因此当一台服务器的处理能力接近或已超出其容量上限时,采用集群技术对服务器进行扩容,可以很好地提升系统整体的并行处理能力,在集群环境中,节点的数量越多,系统的并行能力和容错性就越强
在无状态服务下,扩容可能是迄今为止效果最明显的增加并发量的技巧之一
从扩容方式角度讲,分为垂直扩容(scaleu