本文最后更新于 1186 天前,其中的信息可能已经有所发展或是发生改变。
Open Feign
Feign
Feign声明式WebService客户端,旨在使编写Java Http客户端变得更容易,通过注解来使用。
Open Feign
Open Feign是SpringCloud在Feign的基础上进行了封装,使之支持SpringMVC的注解和HttpMessageConverters(Http请求/响应与Java对象之间的转换)。
默认集成Ribbon,实现客户端负载均衡。
使用
pom
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
yml
-
设置feign客户端超时时间(默认一秒钟)
ribbon: #指的是建立连接所用的时间,适用于网络状况正常的情况下,两端连接所用的时间 ReadTimeout: 5000 #指的是建立连接后从服务器读取到可用资源所用的时间 ConnectTimeout: 5000
启动类
@SpringBootApplication
@EnableFeignClients
public class OrderFeignMain80 {
public static void main(String[] args) {
SpringApplication.run(OrderFeignMain80.class, args);
}
}
接口调用
@Component
@FeignClient(CommonConst.PAYMENT_SERVER)
public interface PaymentFeignService {
@GetMapping(value = "/payment/get/{id}")
public CommonResult<Payment> getPaymentById(@PathVariable("id") Long id);
}
记录调用日志
yml
logging:
level:
# feign日志以什么级别监控哪个接口
com.yuyy.springcloud.feign.PaymentFeignService: debug
设置日志级别
- NONE:默认的,不显示任何日志;
- BASIC:仅记录请求方法、URL、响应状态码及执行时间;
- HEADERS:除了BASIC中定义的信息之外,还有请求和响应的头信息;
- FULL:除了HEADERS中定义的信息之外,还有请求和响应的正文及元数据
@Configuration
public class FeignConfig
{
@Bean
Logger.Level feignLoggerLevel()
{
return Logger.Level.FULL;
}
}