Spring Cloud OpenFeign 基于Ribbon和Hystrix的声明式服务调用
目录:
简介
OpenFeign声明式服务调用,整合了Ribbon和Hystrix拥有两者的功能,具有负载均衡和服务容错保护。
依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
注解
@EnableFeignClients //开启feign服务
@FeignClent(value=“eureka中服务注册的名字”, fallback= xxx.class) //fallback服务调用出错启动的容错保护类
配置
feign:
hystrix:
enabled: true # 开启容错功能
示例
需要调用的服务接口
service中使用openFeign定义的接口类型调用
定义的容错处理类
测试服务容错
测试传入简单参数
测试传入list参数
配置Feign日志
日志级别:
NONE:默认的,不显示任何日志。
BASIC:仅记录请求方法、URL、响应状态码及执行时间。
HEADERS:比BASIC,还多出了请求和响应的头信息。
FULL:比HEADERS,还多出了请求和响应的正文和元数据信息。
配置:
@Configuration
public class Feignconfig {
/**
* feign开启日志配置
* @return
*/
@Bean
public Logger.Level feignLoggerLevel(){
return Logger.Level.FULL;
}
}
springboot的yml配置文件配置日志级别
logging:
level:
com.zxf.feign.FeignServiceFeign: debug #注意debug前面有一个空格,确实会报错并且很难排查
示例
feign配置
feign:
hystrix:
enabled: true # 开启容错功能
compression:
request:
enabled: false # 是否对请求进行压缩
mime-types: text/xml,application/xml,application/json # 指定压缩请求类型
min-request-size: 2048 # 超过此大小时,请求会被压缩
response:
enabled: false #是否对响应进行压缩