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>

posted @   niao66  阅读(478)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 我与微信审核的“相爱相杀”看个人小程序副业
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~
点击右上角即可分享
微信分享提示