上一篇我们介绍了秒杀系统存在业务特点,那么结合业务特点,我们可以联想到这个秒杀系统具有的技术特点有哪些。下面我们就来列举下秒杀系统存在的技术特点。
1、提前预热
在秒杀活动之前,我们需要把活动详情页面进行cdn预热。还有一些动态数据需要把他提前预热到redis缓存中,例如库存等信息。这里一般我们都是通过管理后台进行一键操作的,静态页面是cdn自动分布,这块是运维系统会自动进行扩展。
2、瞬间并发量比较高
瞬间并发量主要分为cdn流量和最前端的slb负载均衡层,经过程序的层层限流等,落到后面服务的流量会相对来说比较少一点。
3、限流
限流也分为两块,一块是在网关层,一块是在mq层。网关层的算法我们主要还是以令牌桶算法为准,部分不太有太细致要求的场景下,有的团队会使用漏桶算法。另外一个处于限流的场景在mq,而且仅发生在异步系统架构的情况下,当mq队列长度达到阈值,则直接返回被抢购完成,也算是一种限流。
4、读多写少
这里的读多写少主要也分为缓存和持久层,缓存一般主要是本地缓存+集中式缓存(redis集群),持久层一般主要以DB为主,例如:mysql等。
备注:
在这里补充一下,在成熟性的业务中,微服务体系里面秒杀模块是一个专门的微服务模块,虽然这里的业务逻辑和流程和正常下单支付没什么区别,但是由于业务场景和突发情况,预备方案、流程等都会有一定的变化,所以这里一般都会抽离出单独的微服务模块。
还没有评论,来说两句吧...