课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
秒杀活动相信大家在网购的时候应该见到过或者参加过这样的活动了,而今天我们就从程序员的角度来分析一下,秒杀系统架构设计都需要满足哪些条件。
高性能:秒杀涉及大量的并发读和并发写,所以需要动静分离、热点的发现与隔离、请求的削峰与分层过滤、服务端优化等方面。
-动静分离就是尽量将系统需要的数据分为动态数据和静态数据,静态数据可以使用CDN等缓存技术前置,减少网络请求延迟问题。然后提升网络访问效率,可以对合并请求,比如:合并图片、js、css等,或者将js、css与html内容合并。
-热点包括热点操作和热点数据。热点操作包括页面刷新(用户会在快到秒杀时间的时候大量刷新页面,想及早获取秒杀入口。)、下单(进入秒杀入口的用户会快速提交订单)等。热点数据主要是商品数据,包括商品基本信息、商品价格、商品库存等,商品基本信息和商品价格可以认为是静态热点数据,因为这些数据基本上不会变;商品库存属于动态数据,因为随着秒杀活动进行,库存数据会随之修改。静态热点数据可以采用CDN等前置缓存技术解决,动态静态数据则可以使用缓存数据库等优化方案。
-请求削峰是将高并发的请求拉平,放入请求队列中,先进先出。就像蓄势的水库,开几个泄洪口就行。
-分层过滤就是利用缓存技术将请求逐级过滤,比如浏览器缓存、CDN、WEB服务器缓存等,应用服务中也可以使用多级缓存保障读请求的快速响应。这里还需要考虑网络限流,
-服务端优化是这涉及应用服务的优化,优先优化的应该是服务容器、服务器、内核、连接池等内容。
一致性:这个主要是针对商品库存,因为秒杀系统一般是严格控制库存的,不能超卖。而且秒杀的场景中,一般是买到即赚到,所以下单成功不支付的情况非常少,所以秒杀场景一般采用下单减库存的方案。
高可用:保障系统稳定可用,简单的方案就是错误直接返回秒杀结束,复杂一些就是做好请求降级熔断。还要设计一整套的PlanB方案。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。