5.1概述
Feign是一个声明式的Web服务客户端,让编写Web服务客户端变得非常容易,只需创建一个接口并在接口上添加注解即可。
Feign集成了Ribbon,利用Ribbon维护了Payment的服务列表信息,并且通过轮询实现了客户端的负载均衡。而与Ribbon不同的是,通过feign只需要定义服务绑定接口且以声明式的方法,优雅而简单的实现了服务调用。
Feign和OpenFeign的区别:OpenFeign是Spring Cloud 在Feign的基础上支持了SpringMVC的注解,如@RequesMapping等等。OpenFeign的@FeignClient可以解析SpringMVC的@RequestMapping注解下的接口,并通过动态代理的方式产生实现类,实现类中做负载均衡并调用其他服务。
5.2OpenFeign使用步骤
第一步:新建consumer-feign-order80
<!--openfeign-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
第二步:service接口
第三步:controller
第四步:测试,访问http://localhost/consumer/payment/selectById/2
5.3超时控制
OpenFeign默认等待一秒,超时后报错,可以在yml中配置超时时间
5.4日志打印功能
Feign 提供了日志打印功能,我们可以通过配置来调整日志级别,从而了解 Feign 中 Http 请求的细节。
Feign的日志级别:NONE——默认的,不显示任何日志;BASIC——仅记录请求方法、URL、响应状态码及执行时间;HEADERS——除了 BASIC 中定义的信息之外,还有请求和响应的头信息;FULL——除了 HEADERS 中定义的信息之外,还有请求和响应的正文及元数据。
配置日志:
(1)config
(2)yml