我们在需求阶段经常会遇到下列问题,针对直播抢购场景,假设我们要设计一款直播抢购的功能,比如某网红的直播间粉丝过亿,500万人在线,100万单商品瞬间被抢,下单并发高达200万QBS,如果当时出现评论区卡死,商品白屏,连库存服务也挂了,订单系统也崩溃了,这应该怎么办?分析:首先这是普通的技术难题,库存服务挂了,订单系统也跟着崩了,那肯定是服务依赖没处理好,或者说是这个全链路这个压测不到位,引发了连锁反应。问:系统缺乏防护机制的原因是什么?答:我认为系统缺乏防护机制的原因主要有三个。首先,流量失控没有限流措施,导致高并发直接压垮了系统。其次,服务之间的强依赖耦合太紧,一个服务出现问题,其他服务也会受到影响。最后,隔离措施不足,资源和逻辑没有有效隔离,单点故障迅速蔓延,导致整个系统瘫痪。问:如何设计以避免这种局面?答:我会采取三个主要策略来解决这个问题。首先,拦截,通过限流和熔断机制拦截和限制流量,比如设定阈值,超过阈值时进行限流或降级,以保护服务不被压垮。其次,缓解,通过缓存和排队等方式缓解流量高峰,提升系统吞吐能力。最后,隔离,通过隔离故障域,将问题限制在局部,防止故障蔓延到整个系统。问

技术 · 03-07
Theme Jasmine by Kent Liao

粤ICP备2023052298号-1