初识服务降级、熔断、限流Hystrix

Hystrix官网:

github.com/Netflix/Hystrix/wiki/How-To-Use

Hystrix主要功能:服务降级 fallback、服务熔断 break、服务限流  flowlimit、接近实时的监控

一:服务降级 fallback,报错或者有问题,立即返回客户端一个提示。hystrix消费端、提供端都可以添加,一般放到消费端

1.为什莫要有服务降级:

 

2.思路和注意重点:

3.提供者8001具体做法: 

4.消费者 80操作实例,和提供者做法一摸一样,只是以后常在消费者这样实现:

 

5.当前存在问题:

 6.解决方法:配置一个默认的兜底方法,如果方法A使用了@HystrixCommand,里面没有再指定具体的fallback方法,当A出错时,自动走@DefaultProperties(de...)配置的兜底方法。

 下图中,paymentInfo_error()方法出错,走的是自定义的兜底方法,不是全局的兜底方法,因为@HystrixCommand里面有指定具体的fallback方法,如果没有具体指定,则会走全局兜底方法。

7.另外一种解决方法    通配服务降级:1).写个类PaymentFallBacService,实现消费者要调用的service,类中是所有方法的兜底方法,2).调用PaymentHystrixService中的方法时,注解中如下图配置:

 

二:服务熔断 break

 

1.熔断状态

 

2.直接上代码

 

3.HystrixCommandProperties中具体配置的参数总结:

 

 

服务熔断,本例中10s之内调用某个接口10次,失败率达到60%就跳闸,此时熔断打开,不能再调用当前服务,如果继续调用,则会进入到兜底方法中,即使正确调用也会进入到兜底方法;等到熔断打开时长达到设置的时间窗口器的时间,就会进入到半熔断状态,直到熔断关闭,此时不会对服务进行熔断。 

三:服务监控 hystrixDashbrod    (需要专门写个监控服务9001,对8001进行监控):

1.

 2.监控服务9001,很简单,只是一个启动类添加@EnableHystrixDashbord开启实时监控:

3.8001  启动类修改如下: 

 4.页面展示:

 

猜你喜欢

转载自blog.csdn.net/zhangleiyes123/article/details/106839502