OpenFeign服务接口调用概念+实操

675 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

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

——概念

在这里插入图片描述

与Feign区别

在这里插入图片描述 日志增强

  • 对Feign接口的调用情况进行监控和输出
  • 日志级别:
    • null:默认,不显示任何日志
    • BASIC:仅记录请求方法,URL,响应状态码及执行时间
    • HEADERS:除了BASIC中定义的信息外,还有请求和响应的头信息
    • FULL:除了HEADERS中定义的信息外,还有请求和响应的正文及元数据

——实操

  • 接口+注解的形式:微服务调用接口+@FeignClient
  • pom依赖
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
  • 主启动类添加@EnableFeignClients注解

超时控制:默认客户端等待1s,超过后报错

  • yml文件开启OpenFeign客户端超时控制
#设置feign客户端超时时间(OpenFeign默认支持ribbon)
ribbon:
  #  建立连接所需要的时间
  ReadTimeout: 5000
  #  建立连接后服务端响应的时间
  ConnectTimeout: 5000
  • OpenFeign开启日志打印
import feign.Logger;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * Feign的日志配置
 * @author XLJ
 * @date 2020/9/10
 */
@Configuration
public class FeignConfig {
    @Bean
    Logger.Level feignLoggerLevel(){
        return Logger.Level.FULL;
    }
}
  • yml文件开启日志的Feign客户端
logging:
  level:
    #    feign日志以什么级别监控哪个接口
    com.xlj.springcloud.service.PaymentFeignService: debug