Hystrix的熔断机制
概述: 防止微服务在使用过程中出现雪崩的一种保护机制。
当某个微服务出现出错或者响应时间过长时,会对微服务进行降级处理,然后进行熔断,过段时间 进行 尝试 恢复调用链路。
熔断机制使用在被调用方 (服务方) 启动的注解
//=========服务熔断 下面的参数 在10秒内 达到10次访问 且失败率达到60% 开启断路器
@HystrixCommand(fallbackMethod = "paymentCircuitBreaker_fallback",
commandProperties = {
@HystrixProperty(name = "circuitBreaker.enabled",value = "true"), //是否开启断路器
@HystrixProperty(name = "circuitBreaker.requestVolumeThreshold",value = "10"), //访问峰值10次
@HystrixProperty(name = "circuitBreaker.sleepWindowInMilliseconds",value = "10000"),// 时间区域10秒
@HystrixProperty(name = "circuitBreaker.errorThresholdPercentage",value = "60"),})//60%
Hystrix 的执行流程 (可以关注)
图形化监控 微服务提供者的 被调用 失败次数等等
被监控者:需要添加这些依赖以及主启动类中添加 开启断路器的注解@EnableCircuitBreaker
/** *此配置是为了服务监控而配置,
* 与服务容错本身无关,
* springcloud升级后的坑 *ServletRegistrationBean因为springboot的默认路径不是"/hystrix.stream",
* *只要在自己的项目里配置上下面的servlet就可以了 */
@Bean
public ServletRegistrationBean getServlet() {
HystrixMetricsStreamServlet streamServlet = new HystrixMetricsStreamServlet();
ServletRegistrationBean registrationBean = new ServletRegistrationBean(streamServlet);
registrationBean.setLoadOnStartup(1);
registrationBean.addUrlMappings("/hystrix.stream");
registrationBean.setName("HystrixMetricsStreamServlet");
return registrationBean;
}
依赖 以及
<!--web-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 我与微信审核的“相爱相杀”看个人小程序副业
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~