如何设计秒杀系统?(一)

架构原则——四要四不要

1.数据要尽量少

指用户请求的数据能少就少,请求的数据包括上传给系统的数据和系统返回给用户的数据(通常就是网页)。例如:我们可以简化秒杀页面的大小,去掉不必要的页面装修效果等等

原因:减少网络消耗,服务端cpu编码等 

2.请求数要尽量少

同样的降低网络请,另外,如果不同请求的域名不一样的话,还设及这些域名的DNS解析,可能耗时更久

3.路径要尽量短

所谓路径,就是用户发出请求到返回数据这个过程中,需求经过的中间节点数。每增加一个链接都会增加新的不确定性。从概率统计上来说,假如一次请求经过5个节点,每个节点的可用性是99.9%的话,那么整个请求的可用性就是99.9%的5次方,约等于99.5%

4.依赖要尽量少

举个例子,比如说你要展示秒杀页面,而这个页面必须强依赖商品信息、用户信息,还有其他如优惠券、成交列表等这些对秒杀不是非要不可的信息(弱依赖),这些弱依赖在紧急情况下就可以去掉

5.不要有单点

就集群呗,服务无状态

总结:

秒杀的场景,不同QPS量级下瓶颈也会不一样,10w级别可能瓶颈就在数据读取上,通过增加缓存一般就能解析,如果要到100w那么,可能服务端的网络是瓶颈,所以要把大部分的静态数据放到cdn上甚至缓存在浏览器里

所以要做架构设计或者升级,还是主要分析在预估的QPS下,整个系统的瓶颈会在什么地方,要针对这个瓶颈来设计方案

发布了43 篇原创文章 · 获赞 37 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/qq_28119741/article/details/100175353
今日推荐