OpenFeign
1、简介
OpenFeign是一个声明式的Web服务客服端,让编写Web服务器客户端变得非常容易,只需要创建一个接口并在接口上添加注解即可。
2、使用
1、加入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
2、主启动类加上@EnableFeignClients注解,开启OpenFeign
@SpringBootApplication
@EnableFeignClients
public class FeignOrderMain80 {
public static void main(String[] args){
SpringApplication.run(FeignOrderMain80.class,args);
}
}
3、写FeignClient接口
- @FeignClient指定提供服务的名称
- @Mapping指定远程服务的调用uri
@Component
@FeignClient(value = "CLOUD-PAYMENT-SERVICE")
public interface PaymentFeignService {
@GetMapping(value = "/payment/getPort")
String getPort();
}
4、服务使用
- 直接获取远程服务接口的实现类,调用提供的方法,就可以直接实现远程服务的调用
@RestController
public class OrderFeignController {
@Resource
private PaymentFeignService paymentFeignService;
@GetMapping("/consumer/payment/getPort")
public String getPaymentById( )
{
return paymentFeignService.getPort();
}
}
3、OpenFeign超时控制
- openFeign在调用远程服务时,默认只会等待一分钟,如果远程服务的处理时间超过一秒钟,就会直接报错返回。
- 可以在yml配置文件中修改超时时间
#设置feign客户端超时时间(OpenFeign默认支持ribbon)
ribbon:
#指的是建立连接所用的时间,适用于网络状况正常的情况下,两端连接所用的时间
ReadTimeout: 5000
#指的是建立连接后从服务器读取到可用资源所用的时间
ConnectTimeout: 5000
4、自带负载均衡机制
OpenFeign依赖包中是带有Ribbon依赖的,所以OpenFeign在进行远程服务调用时也是带有负载均衡功能的

5、日志功能
OpenFeign还带有日志打印功能。可以了解OpenFeign在进行Http请求调用时的细节。对Feign接口的调用情况进行监控。
1、添加日志Bean
@Configuration
public class MyConfig {
@Bean
Logger.Level feignLoggerLevel()
{
return Logger.Level.FULL;
}
}
2、yml中开启日志功能
- 注意给使用@FeignClient的接口路径
logging:
level:
com.wjy.service.PaymentFeignService: debug
我这里的用了@FeignClient的接口路径是com.wjy.service.PaymentFeignService
3、日志的级别

本文介绍了OpenFeign的基本概念和使用方法,包括添加依赖、启用注解、编写FeignClient接口以及如何直接调用远程服务。此外,还详细阐述了OpenFeign的超时控制配置,以及它内置的负载均衡机制。最后,讨论了OpenFeign的日志功能,包括如何添加日志Bean、开启日志和设置日志级别,以便于对调用过程进行监控。
352

被折叠的 条评论
为什么被折叠?



