服务熔断治理

服务熔断治理一 基础概念二 SpringCloudH 是基于 Netflix 的开源框架 Hystrix 实现 该框架实现了服务熔断 线程隔离等一系列服务保护功能 对于熔断机制的实现 Hystrix 设计了三种状态 1 熔断关闭状态 Closed 服务没有故障时 熔断器所处的状态 对调用方的调用不做任何限制 2 熔断开启状态 Open 在固定时间窗口内 Hystrix 默认是 10 秒 接口调用出错比率达到一个阈值 Hystrix 默认为 50

一、基础概念

二、Spring Cloud Hystrix

Spring Cloud Hystrix是基于Netflix的开源框架Hystrix实现,该框架实现了服务熔断、线程隔离等一系列服务保护功能。

它是一个分布式容错框架,故它有这些特点

  • 阻止故障的连锁反应,实现熔断
  • 快速失败,实现优雅降级
  • 提供实时的监控和告警

1.Hystrix设计了三种状态

对于熔断机制的实现,Hystrix设计了三种状态:

1.熔断关闭状态(Closed)

服务没有故障时,熔断器所处的状态,对调用方的调用不做任何限制。

在固定时间窗口内(Hystrix默认是10秒),接口调用出错比率达到一个阈值(Hystrix默认为50%),会进入熔断开启状态。

进入熔断状态后,后续对该服务接口的调用不再经过网络,直接执行本地的fallback方法。

在进入熔断开启状态一段时间之后(Hystrix默认是5秒),熔断器会进入半熔断状态。

所谓半熔断就是尝试恢复服务调用,允许有限的流量调用该服务,并监控调用成功率。

如果成功率达到预期,则说明服务已恢复,进入熔断关闭状态;如果成功率仍旧很低,则重新进入熔断关闭状态。

三个状态的转化关系如下图:

在这里插入图片描述

2. Hystrix的内部处理流程

下图为Hystrix服务调用的内部逻辑: 

在这里插入图片描述

1.构建Hystrix的Command对象, 调用执行方法.

3.Hystrix Metrics

Hystrix的Metrics中保存了当前服务的健康状况, 包括服务调用总次数和服务调用失败次数等.

根据Metrics的计数, 熔断器从而能计算出当前服务的调用失败率, 用来和设定的阈值比较从而决定熔断器的状态切换逻辑. 因此Metrics的实现非常重要.

4.资源隔离

1.线程隔离

即每个服务单独一个线程池

2.信号量隔离

5.熔断

熔断是为了防止异常不扩散,保证系统的稳定性

6.降级

参考资料

1.漫画:什么是服务熔断 https://blog.csdn.net/moakun/article/details/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/178863.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午4:21
下一篇 2026年3月26日 下午4:22


相关推荐

  • mybatis逆向生成java代码_mybatis生成

    mybatis逆向生成java代码_mybatis生成前言有时候,我们创建实体类需要跟数据库表里面的字段对应起来。假如一张表有数百个字段,那么手动去写实体类的话就比较麻烦,而且容易出错。解决方案其实解决这个问题的方式有很多,本文介绍其中一种解决方案,通过mybatis的逆向工程生成实体类。本文使用的数据库是Oracle,MySQL只需要修改jar包以及generator.properties配置即可。可以从公众号【程序员高手之路】回复“逆向工程”获取源码!Step1修改p…

    2022年8月21日
    8
  • keil5如何生成bin文件_keil4生成bin文件

    keil5如何生成bin文件_keil4生成bin文件 在RealviewMDK的集成开发环境中,默认情况下可以生成*.axf格式的调试文件和*.hex格式的可执行文件。虽然这两个格式的文件非常有利于ULINK2仿真器的下载和调试,但是ADS的用户更习惯于使用*.bin格式的文件,甚至有些嵌入式软件开发者已经拥有了*.bin格式文件的调试或烧写工具。为了充分地利用现有的工具,同时发挥RealviewMDK集成开发环境的优势,将*.axf格式文件或*.he…

    2022年10月20日
    4
  • SecureCRT 使用pem

    SecureCRT 使用pem新给了开发环境机器 但是证书给了个 pem 格式 别人用蜗牛那个工具可以直接使用 我是老版本的 securecrt 用不了 懒得换工具了 那就转换一下证书吧 随便找一台 Linux 机器 登陆进去 把 pem 文件传上去 生成公密钥 pub 文件 使用公密钥时 SecureCRT 会询问私密钥或者 pem 文件 ssh keygen e f nbsp key pemkey pem pub

    2026年3月17日
    2
  • linux服务器,svn认证失败,配置问题,防火墙等等

    linux服务器,svn认证失败,配置问题,防火墙等等

    2021年10月13日
    79
  • kafka删除topic消息的四种方式[通俗易懂]

    kafka删除topic消息的四种方式[通俗易懂]方法一:快速配置删除法(简单粗暴,如果这个主题有程序还在消费都,此时KAFKA就gameover)1.kafka启动之前,在server.properties配置delete.topic.enable=true2.执行命令bin/kafka-topics.sh–delete–topictest–zookeeperzk:2181或者使用kafka-manager集群管理工具删除注意:如果kafka启动之前没有配置delete.topic.enable=true,topic只会标记

    2022年10月16日
    5
  • 圆周率的前十万亿位_圆周率算到60万亿位

    圆周率的前十万亿位_圆周率算到60万亿位3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644…

    2025年11月8日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号