一、简介
同样是客户端的负载均衡和服务调用工具,客户端的声明式的Web Service客户端,只需定义一个服务的接口,然后在上面添加注解,完成对服务方接口的绑定。OpenFeign 是对原有 Feign 的封装,使之支持SpringMVC标准注解和HttpMessageConverters。简化了使用Ribbon时,封装服务调用客户端的开发量。实际上 OpenFeign 也包含了Ribbon,默认带了负载均衡。
github:https://github.com/spring-cloud/spring-cloud-openfeign
二、服务调用方配置
- 配置文件 (仅仅是Eureka的配置或Consul等) - 1 
 2
 3
 4
 5
 6
 7
 8- server: 
 port: 端口
 eureka:
 client:
 register-with-eureka: false
 service-url:
 defaultZone: http://xxx.com:port/eureka, http://xxx.com:port/eureka
- 添加 FeignService 接口,接口中声明的为微服务controller中的接口方法。添加@FeignClient(value = “注册到注册中心的服务名”),完成对服务方接口的绑定。 - 1 
 2
 3
 4
 5
 6
 7
 8
 (value = "服务名") // 注册到注册中心中的服务名
 public interface FeignService {
 // 下面这些可直接从微服务中复制过来。
 (value = "/xxx/get/{id}")
 public CommonResult getXXXByID(@PathVariable("id") String id);
 }
- 启动类:添加 @EnableFeignClients 注解 
- Controller - 直接注入 FeignService,通过FeignService 来进行服务调用。 - 1 
 2
 3
 4
 5
 6
 7
 private FeignService feignService;
 (value = "xxx/xxx/{id}")
 public CommonResult<Payment> getXXXById(@PathVariable("id") String id){
 return feignService.getXXXByID(id);
 }
三、连接、访问超时控制
由于OpenFeign 实际上引用了Ribbon,他的超时也是由Ribbon来实现的,因此实际上是对Ribbon的配置。
| 1 | ribbon: | 
四、日志打印
OpenFeign 提供了日志打印功能,可以通过配置日志级别来查看Http请求中的细节。
1. 日志级别:
- None:默认配置,不显示日志
- BASIC:仅记录请求方法、URL、响应状态码和执行时间
- HEADERS:除了BASIC 中定义的信息之外,还有请求头和响应的头信息
- FULL:HEADERS中的信息 + 请求和响应的正文及元数据
2. 配置使用
- yaml配置 - 1 
 2
 3
 4- logging: 
 level:
 # 直接复制FeignService的参考地址
 com.beyonderwei.springcloud.service.FeignService: debug
- OpenFeign 日志配置类 - 1 
 2
 3
 4
 5
 6
 7
 public class FeignConfig {
 
 Logger.Level feignLoggerLevel(){
 return Logger.Level.FULL;
 }
 }- 重新启动后即可在控制台看到详细的调用信息。 

...
...
00:00
                    00:00
                
本文为作者原创文章,未经作者允许不得转载。