hystrix不起作用
学习分布式项目,采用最新的版本进行学习
- springboot版本.2.4.4
- springcloud 版本2020.0.2
然后配置都有
application.yml
feign:
hystrix:
enabled: true
其他微服务的接口,使用feign 进行调用,配置 fallback
@FeignClient(name = "base", fallback =baseClientImpl.class)
public interface BaseClient {
...
}
实现 BaseClient 接口,当发生熔断时调用此实现类的方法.
@Component
public class BaseClientImpl implements BaseClient {
...
}
结果微服务启动就能调用,一停掉,再访问都是503,而不是进入熔断方法
看半天博文及文档.都没找到解决.最后想到是不是版本太新了,还没支持hystrix的熔断,就发现了springboot的初始化工程
https://start.spring.io/
你可以通过这个链接 查看 springcloud 对象需求版本
https://start.spring.io/actuator/info(https://start.spring.io/actuator/info)
(这个图是浏览器加 json格式化插件 显示的,一般浏览器可能没有这样的效果)
选则好自己用的springboot版本,再点击添加依赖, 搜索 hystrix 如果有以下提示.恭喜你,要改个版本再测测了. 我就将我的版本都回退了
- springboot版本 2.3.9.RELEASE
- springcloud 版本Hoxton.SR10
想要使用zuul进行网关搭建也是会提示版本需求
所以选中适合的springboot版本后,再点击添加依赖,搜索 Spring Cloud GCP 添加后,会根据你选中的 springboot版本,自动引用相应的springcloud 版本
点击 下方按钮可以查看 pom 预览
我们只需要 spring cloud 的 依赖版本
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
至于下面这个gcp 的就不需要了
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>spring-cloud-gcp-dependencies</artifactId>
<version>${spring-cloud-gcp.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>