Hystrix
服务降级:
・
・
・
・
・
服务熔断:
・
・
・
・
・
服务限流:
Hystrix案例演示:
・
・
1、新建子模板
・
・
2、改pom
・
・
3、改yml
・
・
4、主启动类
・
・
5、业务类
Service层:
Controller层:
・
・
6、测试
上述都会运行成功
接下来以上面为根基开始演示熔断、降级:
高并发测试:
启动之后,再访问
发现两个路径的请求都变慢了
・
・
・
加入80消费者服务
1、创建子模板
・
・
2、改pom
・
・
3、改Yml
・
・
4、主启动
・
・
5、业务层
service接口
Controller
・
・
6、测试:
7、高并发测试:
・
・
・
・
・
・
分析原因:
・
・
・
解决要求:
・
・
・
服务降级
业务类修改
启动主启动类
・
・
8001自身调用高并发测试:(服务降级成功)
消费者80进行服务降级处理:
1、建立子模块80
2、改pom
3、改yml
4、主启动
5、业务类
Controller修改
测试80(无截图)
上述的服务降级中存在的部分问题需要优化
・
・
(代码膨胀问题)使用全局配置:让大部分方法用同一个服务降级,除了部分特殊指定的・
・
・
(代码耦合度高问题 ) 在Service层进行服务降级处理,就不用去到Controller了
步骤:
1、Service接口实现类进行处理
2、service接口类处理
3、改Yml (启动Feign中的服务降级)
4、测试
总结:
今天主要是学习Hystrix中的服务降级处理一些高并发访问是的超时问题、程序运行错误问题、微服务宕机问题,一般用在消费者客户端处理比较多:OpenFeign中可以直接在yml配置中开启Hystrix服务降级,几个重要的注解:@HystrixCommand开启服务降级处理它有fallbackMethod,指定兜底方法名称的属性,@HystiProperty可以指定线程等待时间,@DefaultProperties指定全局服务降级配置,有属性defaultFallback指定兜底方法名。@EnableHystrix主启动类开启服务降级处理
最好的消费者处理客户端服务降级处理的方法就是,使用OpenFeign服务调用时,在Service接口层进行服务降级处理(实现Service中接口加入容器进行服务降级处理,在服务接口**@FeignClient**中指定兜底类)。