浅谈高并发——以秒杀场景为例
导读
高并发指的是同一时刻有大量的用户请求到达服务器,服务器需要对请求进行处理,并及时返回响应信息。通过有限的服务器资源,尽可能快速地处理尽可能多的网络请求,是一个值得深入研究与探讨的话题。
现如今,互联网服务内容越来越丰富,用户越来越多,服务器压力也变得越来越大。在流量不大的情况下,对于小型网站来说,部署简单的动态页面,通过数据库进行信息存取,即可满足大部分应用场景。但随着用户单位时间访问量越来越大,并发越来越高,传统服务器的简单架构已经难以应对大流量的冲击,服务会被冲垮,造成宕机。
要想优雅地处理高并发问题,需要进行全面的考虑,包括但不限于:网络请求、服务器性能、IO瓶颈、带宽等。做好相应的方案设计,才能在资源有限的前提下,提高服务器的承载能力。高并发系统常见的应对措施包括缓存、限流和降级。使用缓存可以有效缓解服务器的压力、增大系统处理能力、加快请求响应速度,几乎是高并发服务器系统的标配;限流是通过减少请求频率来减轻服务器压力;降级的意思是把不重要的服务暂时关闭,节省服务器资源,从而保证核心服务的正常运行,降级首要考虑的问题是区分核心服务与非核心服务,分辨哪些服务可以降级,哪些不能降级。核心服务如写库、下单、支付等是不能降级的,在高并发的情形下需要考虑应对措施保证其可用。
今天我们以生活中常见的秒杀场景为例,结合具体项目—搜狐焦点在线开盘系统,来说明高并发场景的应对措施。秒杀场景有以下几个特点:大量用户同时进行抢购操作,系统流量激增,服务器瞬时压力很大;请求数量远大于商品库存量,只有少数客户可以成功抢购;业务流程不复杂,核心功能是