2020-09-12服务接口调用-OpenFeign

2020-09-12  本文已影响0人  喵喵不吃鱼哦

服务接口调用-OpenFeign

Feign是什么:

Feign是一个声明式的web服务客户端,让编写web服务客户端变得非常容易,只需创建一个接口并在接口上添加注解即可。


Feign VS OpenFeign

POM依赖:

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

主启动类添加@EnableFeignClients注解,开始Feign使用

对于业务类中,使用业务逻辑接口+@FeignClient配置调用provider服务
实例代码如下:

@Component
//value中参数为Eureka服务注册中心中的服务提供者的Name
@FeignClient(value = "CLOUD-PAYMENT-SERVICE")
public interface PaymentFeignService {

    @GetMapping(value = "/payment/{id}")
    public CommonResult getPaymentById(@PathVariable("id") Long id);
}

Controller

@RestController
public class OrderFeignController {

    @Resource
    private PaymentFeignService paymentFeignService;

    @GetMapping(value = "/consumer/payment/{id}")
    public CommonResult<Payment> getPaymentById(@PathVariable("id") Long id){
       return paymentFeignService.getPaymentById(id);
    }
}

*注意 Feign自带负载均衡配置项

关系

*OpenFeign默认等待一秒钟,超过后报错
因为OpenFeign继承了Ribbon,所以修改超时控制需要在YML文件中修改

ribbon:
  ReadTimeout:  5000
  ConnectTimeout: 5000

*OpenFeign日志打印功能




配置日志的配置类:

@Configuration
public class FeignConfig {

    @Bean
    Logger.Level feignLoggerLevel(){
        return Logger.Level.FULL;
/*
NONE默认,不显示任何日志
BASIC,仅记录请求方法,URL,响应码以及执行时间
HEADERS;除了BASIC中定义信息之外,还有请求和响应的头信息
FULL除了HEADERS中定义信息之外,还有请求和响应的正文以及元数据
*/
    }
}

YML文件中需要开启日志的Feign客户端

logging:
  level:
    package.name.PaymentFeignService: debug
上一篇下一篇

猜你喜欢

热点阅读