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 @ 2022-07-18 11:31  niao66  阅读(490)  评论(0)    收藏  举报