Alibaba:OpenFeign
图
Spring Cloud OpenFeign以将OpenFeign集成到Spring Boot应用中的方式,为微服务架构下服务之间的调用提供了解决方案,核心的作用是为HTTP形式的Rest API提供了非常简洁高效的RPC调用方式

依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

对应接口

@FeignClient(name = "stock-service", path = "/stock")
public interface StockFeignService {

    /**
     * 库存减少
     * 直接将应用接口的代码拿过来
     */
    @RequestMapping("/test")
    String test();

}

开启

在启动类上加@EnableFeignClients

使用

@Resource
private StockFeignService stockFeignService;

@RequestMapping("/test")
public String test() {
    System.out.println("订单");
    String test = stockFeignService.test();
    return "order" + test;
}

日志级别

可以调整日志级别看到请求的具体信息

import feign.Logger;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class FeignConfig {

    @Bean
    public Logger.Level feignLevel() {
        return Logger.Level.FULL;
    }

}
  • NONE:性能高,适合生产环境,不记录任何日志
  • BASIC:适用生产环境追踪问题,仅记录请求方法、URL、响应状态和执行时间
  • HEADERS:在BASIC基础上增加header
  • FULL:适合开发,所有

配置

# 日志级别
feign.client.config.stock-service.logger-level=full
# 连接超时时间
feign.client.config.stock-service.connect-timeout=5000
# 请求处理超时时间
feign.client.config.stock-service.read-timeout=2000