滴滴如何做服务精壮性的?

滴滴服务精壮性与流量高峰
930滴滴订单量达到了新高,但技术平台因高流量导致事故,影响了订单处理。滴滴内部对930技术进行了复盘,并在内网发了一篇关于系统稳定性和精壮性的文章。今天春哥基于美团外卖解决流量高峰和曹乐的文章做一些评论。
高峰流量下的服务崩溃
930事故中,多个服务因高峰流量而倒下。表面上看是预估不准确或资源不足,但根本原因是服务本身不够健壮。当服务节点在短时间内过载后发生雪崩,并引发重试风暴。如果这些服务是主流程服务,核心服务将全系统崩溃。
例如:
红色的横向线是整个服务的可靠负载边界,但由于网络抖动导致客户端重试,引发了一波重试流量高峰。小小的流量高峰可能就是压垮骆驼的最后一根稻草,一个服务挂掉后,正常节点流量增加,最终全部节点宕机。
外卖的应对策略
外卖这两年也因流量洪峰出现严重事故。逻辑类似,重试流量打倒整个集群,只能限流后续流量。限流是有损的,这个case是必然的,损失程度要看最后的结果。但外卖有一个好的方面:这两年做了单元化,这样不会因为一个集群宕机导致全部服务不可用,可以保证3/4的流量不受影响。
多机房容灾
多机房容灾确实是一个方案,但实现远比提出问题复杂。这是系统层面的事情,涉及到精密的服务治理。