很多年前,我刚参加社招面试的时候,面试官问了我一个问题:“Dubbo 支持服务降级吗?”当时我心里一乐。这题还不简单?我张口就来:“支持,可以返回默认值。”结果面试官微微一笑:“那你说说服务降级和服务熔断有什么区别?Dubbo是怎么实现的?为什么要降级?”那一刻,我突然发现,原来自己只是背过概念,并没有真正理解。后来工作这些年,经历过电商大促、秒杀活动、支付系统雪崩之后,我才真正理解了服务降级的重要性。今天咱们就通过一个有趣的故事,把这个面试题彻底讲明白。一家快要被挤爆的火锅店假设你开了一家超级火爆的火锅店。平时大家配合得很好。顾客进门:用户服务 → 商品服务 → 库存服务 → 支付服务 → 积分服务一气呵成,整个流程就像Dubbo调用链一样。问题来了某一天晚上,突然来了1000桌顾客,整个火锅店瞬间爆满,最先撑不住的是会员中心,因为所有人付款之后都会计算积分,结果积分系统CPU直接100%,请求开始大量堆积,此时如果什么都不做,会发生什么?流程变成:支付线程一直等待。库存线程一直等待。订单线程一直等待。最后整个系统全部拖死。这就是典型的雪崩效应(Cascade Failure),一个服务挂掉,拖死一大片服务。什么叫服务降级这时候老板发话了:积分先别算了,先让顾客把单买完。
为什么大厂都在做服务降级?看完你就明白Dubbo的价值了
很多年前,我刚参加社招面试的时候,面试官问了我一个问题:“Dubbo 支持服务降级吗?”当时我心里一乐。这题还不简单?我张口就来:“支持,可以返回默认值。”结果面试官微微一笑:“那你说说服务降级和服务熔断有什么区别?Dubbo是怎么实现的?为什么要降级?”那一刻,我突然发现,原来自己只是背过概念,并没有真正理解。后来工作这些年,经历过电商大促、秒杀活动、支付系统雪崩之后,我才真正理解了服务降级的重要性。今天咱们就通过一个有趣的故事,把这个面试题彻底讲明白。一家快要被挤爆的火锅店假设你开了一家超级火爆的火锅店。平时大家配合得很好。顾客进门:用户服务 → 商品服务 → 库存服务 → 支付服务 → 积分服务一气呵成,整个流程就像Dubbo调用链一样。问题来了某一天晚上,突然来了1000桌顾客,整个火锅店瞬间爆满,最先撑不住的是会员中心,因为所有人付款之后都会计算积分,结果积分系统CPU直接100%,请求开始大量堆积,此时如果什么都不做,会发生什么?流程变成:支付线程一直等待。库存线程一直等待。订单线程一直等待。最后整个系统全部拖死。这就是典型的雪崩效应(Cascade Failure),一个服务挂掉,拖死一大片服务。什么叫服务降级这时候老板发话了:积分先别算了,先让顾客把单买完。