目录
1.工程目录
2.单独使用hystrix
2.1引入依赖
2.2主启动添加@EnableHystrix
2.3在需要进行错误降级的方法上添加@HystrixCommand
2.4测试
3.整合feign和hystrix
3.1依赖
3.2配置文件开启hystrix功能
3.3主启动类不需要添加@EnableHystrix
3.4定义回调方法
3.5测试
传送门
1.工程目录
整合hystrix时还是使用的前一篇整合feign创建的项目(具体见:)springcloud-feign-consumer,端口9320
涉及到的文件
2.单独使用hystrix
2.1引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
2.2主启动添加@EnableHystrix
2.3在需要进行错误降级的方法上添加@HystrixCommand
注意:回调方法getFallback需要和原方法get有相同的方法签名,入参、返回值等都需要相同
2.4测试
只启动eureka服务和springcloud-feign-consumer服务
启动服务实例如下:
访问http://localhost:9320/feignConsumer/get返回的正是回调方法中定义的内容。测试成功
3.整合feign和hystrix
3.1依赖
由于feign中已经包含了hystrix,所以不需要额外引入hystrix相关依赖。
还是在springcloud-feign-consumer中测试
因为前面测试了单独使用hystrix的方式,所以在springcloud-feign-consumer中需要去除
1. pom.xml中单独引入的hystrix依赖
2.主启动类去除@EnableHystrix
3.controller中去除@HystrixCommand
3.2配置文件开启hystrix功能
spring-cloud-starter-openfeign
2.2.6.RELEASE及之前版本为feign.hystrix.enabled
2.2.7.RELEASE及之后版本为feign.circuitbreaker.enabled
具体配置可以查看FeignClientsConfiguration
在整合feign和hystrix时发现,使用网上的配置feign.hystrix.enabled=true不生效,通过查看源码,发现配置方式有改动。
本次使用的springcloud版本为Hoxton.SR10,其中spring-cloud-starter-openfeign版本为2.2.7.RELEASE
application.yml
feign:
circuitbreaker:
enabled: true
3.3主启动类不需要添加@EnableHystrix
3.4定义回调方法
CommonFallback中定义回调方法,实现需要被代理的接口
CommonFeignService为需要feign代理的接口,在其中添加fallback回调类(刚刚编写的)
3.5测试
只启动eureka服务和springcloud-feign-consumer服务
启动服务实例如下:
访问http://localhost:9320/feignConsumer/get返回的正是回调类CommonFallback中定义的内容。测试成功
传送门
- springcloud入门基础搭建之组件版本
- springcloud入门基础搭建之eureka
- springcloud入门基础搭建之ribbon
- springcloud入门基础搭建之feign
- springcloud入门基础搭建之hystrix
- springcloud入门基础搭建之zuul
- springcloud入门基础搭建之config