地点:β-410 星系,A-731电商星球
。
时间:新纪元 2036 年。
星球简介:
我是一个秒杀请求,每天的工作就是将秒杀请求的数据运送给后端工作者。
这天我在 Nginx 转发服务器上遇见了请求小空 ,我跟小空说有重要消息不方便在现在告诉他,下班再约,然后就都匆匆赶路了,因为我俩都要快速将请求数据运送到订单星球去。
我和小空晚上十点下班后来到一家酒吧,点了两杯 mojito
,找了一个角落坐下。
小空:你最近看起来心事重重。
我:你有没有发现最近我们星球的订单数急剧增加,每天有一千万订单数据产生,也不是一天、两天的事了。
小空:难怪我每天加班到晚上十点来运送请求数据。
我:我有个舅舅在航天局上班,告诉我说我们星球承载不了那么多请求和订单数据,不久就会出现行星大爆炸 。
小空:那怎么办?
我:我们可以去 100 光年外的 T-714 星球,但是只能通过秒杀通道
坐时空穿梭机
去那颗星球。而且名额有限制,不知道我有没有机会登上穿梭机。
我:明天通道会开启两次,上午十点和下午两点。你明天和我一起去吧!
小空:好的。
涉及的知识点:
地点:A-731 星球机场
时间:09 : 45
“请前往 T-714 星球的请求旅客到 Y1 站台排队等待进入特殊通道, 15 分钟后开始进入穿梭机大厅”。大厅的广播连续播放了三遍。
我走向了特殊通道,看到通道旁立着一个牌子:秒杀通道,只给秒杀请求使用。
涉及知识点:
一抬头看到通道上方有一个大屏,在不断播放 T-714 星球的照片,以及机票的订单信息。
有两个穿制服的工作者正在大屏旁巡逻。一个制服上印着 Nginx,一个制服上印着 CDN。
涉及知识点:
时间:10:00
“验证通道已开启,请携带密码进入!” 又是播放了三遍广播。
涉及的知识点:
经过验证通道的筛选后,有一半的假请求被挡在门外,像我这种拿到了正确密码的顺利进入了穿梭机大厅。
来到大厅,发现大厅的正中央摆放着一个显示器,上面显示的红色数字 100 赫然映入眼中。
显示屏的左手边站着一位穿着 Redis 统一制服的靓女。在一旁的我偷听到原来她是控制显示器显示穿梭机剩余数量的。如果数字变为 0 ,则表示穿梭机已经全部被占用,后来的人就得无功而返了。
涉及的知识点:
显示屏的右手边站着一位西装笔挺的年轻帅哥,看到他的袖口上挂着一个红袖章,印着 Redisson 字样。他一脸严肃的模样,对大厅内黑压压一片的请求熟视无睹。可能是见惯了这种场景吧。
正在打量这位帅哥时,发现他的左手拿着一叠机票,没错,有了一张机票就可以登入穿梭机了。我以百米冲速的速度到达了他面前,到达他面前时,已经有十几个请求也到了他身边,他按照先来后到的顺序依次发放机票,到我的时候,机票已经只剩几张了,庆幸的是我的百米冲速帮我抢到了一张机票。我问帅哥是否可以再发一张票给我,他拒绝了。
每一次发放票,穿 Redis 制服的靓女都会操作显示屏,让其数量减一。
十秒钟后,票已经发完,显示屏显示数字 0 。
涉及的知识点:
发放机票的帅哥告诉我,拿到票后,到 A 窗口排队付款,才能拿到登记牌。于是我和另外 99 个请求一起在 A 窗口排队了。
看到一个请求想要放弃付款了,说是机票太贵了,然后准备离开大厅时,被发放机票的帅哥拦住了,他问请求是否要考虑下,有 15 分钟的考虑时间,如果请求还是觉得不行,可以将机票还给他,他可以再发放给其他人。
涉及的知识点:
订单创建成功后,我顺利拿到了登机牌,通过了登机牌的校验后,成功登上了穿梭机。
出发,去往 T-714 星球。听说那个星球的数据库进行了分库分表、服务也拆分成了微服务。
上面通过科幻小说的方式来讲解了秒杀系统中关注的点,但并没有讲全,所以下面列出了秒杀系统关注的八大点:
只讲原理好像不得劲,是不是要来篇实战!
你好,我是
悟空哥
,「7年项目开发经验,全栈工程师,开发组长,超喜欢图解编程底层原理」。 我还手写了 2 个小程序
,Java 刷题小程序
,PMP 刷题小程序
,点击我的公众号菜单打开! 另外有 111 本架构师资料以及 1000 道 Java 面试题,都整理成了PDF。 可以关注公众号 「悟空聊架构」 回复悟空
领取优质资料。
「转发->在看->点赞->收藏->评论!!!」 是对我最大的支持!
我是悟空哥,努力变强,变身超级赛亚人!我们下期见!