什么是服务的熔断降级

作者: 美团Java | 来源:发表于2018-03-29 23:58 被阅读2178次

    很多同学知道我在美团点评负责稳定性保障平台的研发,平台中的功能之一就有服务的熔断降级,提起熔断降级,大家可能熟悉的是Netflix的开源组件Hystrix,但是我们并没有在它的基础上进行二次开发,而是重新撸了一个,可能有人说,重复造轮子不是浪费时间吗?那如果造出的轮子更好用、跑的更快呢,所以不要怕造轮子,只有不断的创新,才有不断的进步。

    首先看看为什么需要熔断降级呢?

    服务的稳定是公司可持续发展的重要基石,随着业务量的快速发展,一些平时正常运行的服务,会出现各种突发状况,而且在分布式系统中,每个服务本身又存在很多不可控的因素,比如线程池处理缓慢,导致请求超时,资源不足,导致请求被拒绝,又甚至直接服务不可用、宕机、数据库挂了、缓存挂了、消息系统挂了...

    对于一些非核心服务,如果出现大量的异常,可以通过技术手段,对服务进行降级并提供有损服务,保证服务的柔性可用,避免引起雪崩效应。

    如果ServiceA调用ServiceD一直失败,或者失败率很高,就可以采用“一种机制”确保后续请求不会调用ServiceD,而是执行降级逻辑。

    这里的这个机制就是熔断降级,熔断降级的实现原理也很简单,看下面这个图:

    1、实时监控接口的健康值,在达到熔断条件时,自动开启熔断
    2、开启熔断之后,如何实现自动恢复?每隔一段时间,释放一个请求到服务端进行探测,如果后端服务已经恢复,则自动恢复

    当然了,具体实现,这里就不细讲了。

    这里说下,为什么没用使用Hystrix进行二次开发,主要是有下面几点考虑:
    1、内置的参数配置无法动态修改
    2、复杂的代码设计,扩展新功能难度大
    3、业务接入负责,方式不够人性化
    4、压测时性能,令人担忧

    通过自研,可以自由把控任何细节,和内部框架无缝集成。

    给自己的星球做个广告,期待你的加入

    虽然是付费,但绝对物超所值

    相关文章

      网友评论

      • bbcd5f7e4e70:一直关注大神,原来我们是同事😀
      • 小滚猪::joy:今天听leader提到你的名字才发现,原来我和大神在一家公司
        美团Java:@小滚猪 哪个leader啊
      • cd13856c86e2:很多同学知道我在美团点评负责稳定性保障平台的研发
        --------------------------------------------------------------------
        哈,原来狼哥也是轮子哥!!佩服佩服...
        对了,美团千亿级别那个招聘,加分项感觉要匹配很难啊。
        --------------------------------------------------------------------
        加分项规则,如下:
        -------------------------
        职位描述:

        商家生态后台业务分析、架构设计、功能开发
        商家生态后台服务质量保障工作:性能分析和优化、服务可用性、服务容灾、服务过载保护、服务降级
        指导低级别的工程师,加强团队的人才培养和技术储备
        攻克技术难点,快速解决线上故障
        良好的沟通协作能力,卓越的自我驱动能力,跨组推动项目
        岗位要求:
        必须项
        本科以上学历,扎实的计算机基础,优秀编码能力
        3年以上Java开发经验,熟练掌握Java及面向对象设计开发,对Java技术有较深的研究
        熟悉常见设计模式,熟练掌握Spring,MyBatis、jetty等流行开源框架
        了解mysql应用场景,能够根据业务特点对表进行设计和优化
        良好的业务分析、业务抽象能力,至少会用一款常用的工具对业务建模
        加分项
        设计并主导过每天千亿访问的、集群规模1000+台机器的大型在线并发系统,对向量时钟、paxos、NWR一致性分布式算法有深入研究和独立见解
        主导过百T级别的数据无缝迁移、同城&异地数据容灾,对业界的两地三中心、异地多活、set容错等技术方案有深入研究,并清晰知道它们的应用场景
        主导过大并发访问下几十个服务组成业务群降级方案,根据业务特性,保证最短关键路径的可用性,对常用降级方案(消息中间消峰、梯度限流、最少关键数据)等有最佳实践经验
        熟悉安全领域常见攻击手段,了解黑产链条,有大量攻防实战经验,并形成自己的方法论
        对jvm原理和机制有深入探究,能解决jvm产生一系列疑难杂症,关注jvm演进的方向,提交一些patch并被
        美团Java:@高斯模糊糊 哈哈
        高斯模糊糊:千亿?美团自己还没达到这个量级吧
        李达_e6c4:楼主大象叫啥 认识下😁

      本文标题:什么是服务的熔断降级

      本文链接:https://www.haomeiwen.com/subject/vuzvcftx.html