美文网首页
2020-09-12服务接口调用-OpenFeign

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

作者: 喵喵不吃鱼哦 | 来源:发表于2020-09-12 11:25 被阅读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
    

    相关文章

      网友评论

          本文标题:2020-09-12服务接口调用-OpenFeign

          本文链接:https://www.haomeiwen.com/subject/vgfwektx.html