(一)电商网站中,50W-100W高并发,秒杀功能是怎么实现的?(3)

首先50W-100W并发的网站,真的已经很大了。

一、业务分离

1.秒杀服务器与网站其他服务器完全隔离,以防流量过大带着其他服务一起死,要死你就死吧,把配置高服务器用来秒杀

2.最前端的页面要被CDN或反向代理是肯定的

3.限流(比如服务器只能承受10W流量,高于10W的请求直接返回失败),

4.降级(秒杀页面并发高到一定程度时可以断开某些接口查询,如推荐,相似物品,历史价格等等,减少服务器返回时间)

5.熔断(某些接口大于某个流量活并发峰值直接返回失败,或者返回默认数据如:某些产品一直有货 ),

二、进入到负载均衡器中

负载均衡器分配web服务器中,web服务器在进入队列,之后进入一个统一的缓存计数器中,秒杀结束后,通过秒杀日志,worker计算剩余库存(此处为异步处理),并且使用MQ推送下单信息至各个系统(订单,库存,发货,子业务域。。。等等系统),各个系统处理后写入数据库

三、同步

这么大流量的系统想要保证数据库中与前台库存与缓存一致性几乎不可能,但是我们只要保证最终落表的数据是正确的就行,如同上文中使用worker读取日志采用异步的方式进行数据落表处理(当然方法还有很多,这里只介绍一个典型方案),这就是传说中的弱一致性保持,分布式系统CAP中通常都会牺牲掉C

你可能感兴趣的:((一)电商网站中,50W-100W高并发,秒杀功能是怎么实现的?(3))