嘿丝儿科技老本都吐露出来了,5张图送你5种秒杀系统
本文结构很简单:5张图送你5种秒杀系统 , 再加点骚操作 , 再顺带些点心里话?♀? 。
一个简单的秒杀系统
实现原理:通过redis原子操作减库存
文章图片
图一
优点:简单好用 , 缺点:考验redis服务能力 。
是否公平:公平 , 先到先得 。
我们称这类秒杀系统为:简单秒杀系统 。
如果刚开始QPS并不高 , redis完全抗的下来的情况 , 完全可以依赖这个「简单秒杀系统」 。
一个够用的秒杀系统
实现原理:服务内存限流算法+redis原子操作减库存
文章图片
图二
优点:简单好用;缺点:- 。
是否公平:不是很公平 , 相对的先到先得 。
我们称这类秒杀系统为:够用秒杀系统
性能再好点的秒杀系统
实现原理:服务本地内存原子操作减库存
服务本地内存的库存怎么来的?
活动开始前分配好每台机器的库存 , 推送到机器上 。
文章图片
图三
优点:高性能 , 释放redis压力;缺点:不支持动态伸缩容(活动进行期间) , 因为库存是活动开始前分配好 。
是否公平:不是很公平 , 不是绝对的先到先得 。
我们称这类秒杀系统为:预备库存秒杀系统
支持动态伸缩容的秒杀系统
实现原理:服务本地协程Coroutine定时redis原子操作减部分库存到本地内存+服务本地内存原子操作减库存 。
文章图片
图四
优点:高性能 , 释放redis压力 , 支持动态伸缩容(活动进行期间) , 具备通用性 。
是否公平:不是很公平 , 但是好了点 , 几乎先到先得 。
我们称这类秒杀系统为:实时预备库存秒杀系统
公平的秒杀系统
实现原理:服务本地Goroutine定时同步是否售罄到本地内存+队列+排队成功轮训(或主动Push)结果
文章图片
图五
优点:高性能 , 真公平具备通用性;缺点:开发成本高(需主动通知或轮训排队结果)
【嘿丝儿科技老本都吐露出来了,5张图送你5种秒杀系统】是否公平:很公平 , 绝对的先到先得 。
我们称这类秒杀系统为:公平排队秒杀系统
骚操作
上面的秒杀系统还不够完美吗?
答案:是的 。
还有什么优化的空间?
答案:静态化获取秒杀活动信息的接口 。
静态化是什么意思?
答案:比如获取秒杀活动信息是通过接口https://seckill.skrshop.tech/v1/acticity/get获取的 。 现在呢 , 我们需要通过https://static-api.skrshop.tech/seckill/v1/acticity/get这个接口获取 。 有什么区别呢?看下面:
文章图片
以前是这样
文章图片
变成了这样
文章图片
结果:可以通过接口https://static-api.skrshop.tech/seckill/v1/acticity/get就获取到了秒杀活动信息 , 流量都分摊到了cdn , 秒杀服务自身没了这部分的负载 。
小声点说:“秒杀结果我也敢推CDN 。 ”
备注:之后我们会分享`如何用Golang设计一个好用的「接口静态化服务」` 。总结
上面我们得到了如下几类秒杀系统:
秒杀系统简单秒杀系统够用秒杀系统预备库存秒杀系统实时预备库存秒杀系统公平排队秒杀系统我想说的是里面没有最好的方案 , 也没有最坏的方案 , 只有适合你的 。
推荐阅读
- 盘点科技SE上手,体验能否依旧精彩?,“狂降400元”的新款iPhone
- 小米科技▲卢伟冰再次发力,全球首发骁龙768G,5G新机将在两天后发布!
- 科技圈测评哥罗永浩直播间的一幕,揭露与雷军真实关系!网友看后:喊话董明珠
- 聊科技焦点朗逸由9.99万降到6.79万,还看啥轩逸?,大众也降了
- 王石头科技阿里和华为终有一场较量!AI芯片自研实力,究竟谁更胜一筹?
- 快科技最贵或达5000元,苹果头戴耳机更多细节曝光:包含两款
- 科技迷7nm版年底流片,要放弃美国代工?国产x86转向三星台积电代工
- 骊微电子科技PD充电器应用方案,PN8161+PN8307H高集成18W
- 快科技小米高管都是外人?雷军透露了一个秘密
- 乐居网姑苏区新增四个科技创新重点项目!,刚刚