查看原文
其他

调查与讨论:你在调用别人接口的时候有考虑过失败情况吗?

翟永超 程序猿DD 2020-10-16

点击上方蓝色“程序猿DD”,选择“设为星标”

回复“资源”获取独家整理的学习资料!

我们在构建分布式系统的时候,对开发人员会有一个很重要的要求:即使你的上下游挂了,你的系统不能挂。这充分体现了分布式系统健康保障的基本思路,从服务级别去控制故障的蔓延,防止系统性崩溃的出现。

排除自身逻辑中的作死行为,从方法上来说,在复杂的分布式系统中,要保持自身的牛逼属性,简单来说就两点:

  • 做好限流:提供给别人的接口,不能因为被频繁调用,把自己压死

  • 做好熔断:调用别人接口的时候,不能因为别人影响慢了,把自己拖死

理论上,分布式系统中的每个接口调用都能做到上面两点,其实要出现系统性故障只有比较大范围的整体性故障才会造成了,比如:整个机房挂了等重大灾难出现。个别服务的作死情况,因为上下游都有保护,是可以很安全的抵御故障蔓延而研发的系统性故障的。

但是,理论总是非常美好,而实践总有各种意外。笔者所经历的各种故障,基本上也都是没有做好上面两点所造成了,一直都没有统计过,后端开发人员在这个理念上的认识程度以及付出实践的情况,所以这里做个小调查:你在调用别人接口或给别人提供接口的时候,都会充分的保障自身的服务稳定吗?



欢迎加入我的星球

4月优惠最后几天咯

参与更多不只有技术的深度讨论



    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存