熔断降级
验证
Feign调用
执行以下命令发起Feign调用,其逻辑为ServiceB
抛出一个异常
curl -L -X GET "localhost:48080/example/service/a/getBServiceInfo"
预期返回情况:
在出现
hello world ! I'm a service B1
时,表示 B2 已经被熔断了,请求只会打到 B1。
验证多场景
调整 example-b
和 example-b2
中 resource/bootstrap.yml
is-throw-runtime-exception 参数调整服务是否抛出异常。
例如测试以下场景
-
两个实例都是正常的,这时候预期是 B1 和 B2 都能正常被调用到
-
一个实例正常一个实例不正常,这时候预期是不正常实例被熔断,请求只会打到正常的实例
-
两个实例都不正常,这时候 Feign 会自动 Fallback 到 ProviderBFallback.java 的实现类
配置中心
config/application.properties 文件内容
timeout = 3000
config/bootstrap.yml 文件内容
teacher: name : jilingy age: 18
访问接口
curl "http://localhost:48084/timeout" curl "http://localhost:48084/person" curl "http://localhost:48084/precedence"
动态推送能力
管控台动态修改并发布 config/application.properties
timeout = 5000
动态配置刷新能力,则通过 Spring Cloud 标准的 @RefreshScope
机制实现。
注意: 由于 Spring Cloud PropertySourceLoader SPI 是在 Bootstrap 阶段调用,所以 Polaris Config 相关的配置内容(例如Polaris 服务地址)需要放在 bootstrap.yml 文件里,而不能放在 application.yml 文件里,否则会初始化失败。
Spring Cloud Tencent 版本管理 · Tencent/spring-cloud-tencent Wiki · GitHub