1. 概述
- Hystrix插件
1.2 适用场景
- 服务不稳定,使用hystrix熔断保护服务
1.3 插件功能
- 熔断流量
- 保护网关代理的服务
- 隔离模式支持
thread
和semaphore
核心类:
org.apache.shenyu.plugin.hystrix.HystrixPlugin
1.5 添加自哪个shenyu版本
ShenYu 2.4.0
2. 如何使用插件
2.1 插件使用流程图
- 在网关的
pom.xml
文件中添加hystrix
的依赖。
2.3 启用插件
在 shenyu-admin
—> 基础配置 —> 插件管理 —> hystrix
设置为开启。
2.4 配置插件
- 无配置,但你应该打开hystrix插件。
用于对流量第一次筛选,不需要特殊处理字段。
关于选择器和规则配置的更多说明,请参考:, 这里只对部分字段进行了介绍。
用于对流量最终筛选,有规则处理逻辑,隔离模式支持 thread
和 semaphore
。
处理详解:
跳闸最小请求数量:最小的请求量,至少要达到这个量才会触发熔断。
错误百分比阀值: 这段时间内,发生异常的百分比。
最大并发量: 最大的并发量。
分组
Key
: 一般设置为:contextPath
。失败降级
URL
: 默认为/fallback/hystrix
。
2.5.1.1 准备工作
- 启动 ShenYu Admin
- 启动 ShenYu Bootstrap
- 启动一个后端服务
2.5.1.2 选择器配置
2.5.1.3 规则配置
- 以下图片的规则仅为测试使用,实际情况取决于特定的场景而定。
- 测试案例
@RestController
@RequestMapping("/test")
@ShenyuSpringMvcClient("/test/**")
public class HttpTestController {
public ResultBean ok() {
Random random = new Random();
int num = random.nextInt(100);
if (num > 20) {
throw new RuntimeException();
}
return new ResultBean(200, "ok", null);
}
2.5.1.4 使用Apache Jmeter
发送请求
2.5.1.5 验证结果
3. 如何禁用插件
在 —> 基础配置 —> 插件管理 —> hystrix
设置为关闭。