美文网首页
服务降级熔断 - 熔断降级

服务降级熔断 - 熔断降级

作者: 爱情小傻蛋 | 来源:发表于2019-10-23 14:48 被阅读0次

    Hystrix实现原理-熔断机制

    熔断是参考电路而产生的一种保护性机制,即系统中如果存在某个服务失败率过高时,将开启熔断器,对于后续的调用,不在继续请求服务,而是进行Fallback操作。

    熔断所依靠的数据即是Metrics中的HealthCount所统计的错误率。

    一个命令的调用过程如图所示:

    熔断器的判断流程:

    1.一个命令执行前会先运行allowRequest()函数。
    allowRequest()函数内部为:

    • 先查看熔断器是否强制开启(ForceOpen()),如果开启则拒绝
    • 再查看熔断器是否强制关闭(ForceClosed()),如果强制关闭则允许Request,否则进一步判断
    • 先做isOpen(),判断熔断器是否开启,如果开启则拒绝访问,如果开启则进一步判断
    • 再做allowSingleTest(),熔断器休眠期过后,允许且只允许一个请求,如果这个请求正确执行,则熔断器关闭,如果执行失败,则熔断器再次开启,进入新的熔断周期。


    如何判断超时

    在运行对应的command时,Hystrix会注册一个Timer到一个定时线程池中,当超时后会启用一个HystrixTimer线程来终止的执行。

    线程池的管理是用ThreadPoolExecutor来实现的,当线程池和阻塞队列都满后会抛出RejectedExecutionException,捕获该异常并进行相应状态的处理。

    注意:除此之外由程序错误导致的异常,断路器打开都可以导致任务失败进入Fallback

    配置

    注意:窗口时间必须为桶数量的整数倍,否则会抛出异常

    Dashboard

    1.Hystrix 自带了一个dashboard,用来监控熔断信息.
    2.Dashboard可以监测哪些数据?
    3.使用turbine可以监控集群.

    使用Turbine聚合的服务器集群

    相关文章

      网友评论

          本文标题:服务降级熔断 - 熔断降级

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