OpenFeign

一、Feign和OpenFeign的区别

  1. 支持spring mvc 注解
  2. 整合了更多的扩展(请求重试策略、超时控制、请求拦截器)

二、高级配置

2.1 日志配置

日志等级有4种:

  1. NONE(性能最佳,适用于生产):不记录任何日志
  2. BASIC(适用于生产环境追踪):仅记录请求方法、URL、响应状态代码以及执行时间。
  3. HEADERS:记录BASIC级别的基础上,记录请求和响应的header
  4. FULL(适用于开发与测试环境定位问题):记录请求和响应的header、body和元数据。

2.2超时配置

若服务提供者的请求处理时间超过了请求处理的超时时间,则会报Read timed out错误

2.3 自定义拦截器(重点)

在OpenFeign中可以通过自定义拦截器的方式,实现远程服务调用过程中的日志输出和认证授权。

OpenFeign 中的拦截器是对服务调用者(也叫消费者)调用服务提供者的过程进行拦截。
Spring MVC 中的拦截器是对客户端(浏览器)请求服务端的过程进行拦截。

2.3.1 自定义OpenFeign拦截器类

在服务消费者项目中创建一个名称为TraceIdFeignInterceptor 的拦截器类,并让其继承RequestInterceptor类。

@Slf4j
//@Component
public class TraceIdFeignInterceptor implements RequestInterceptor {
    @Override
    public void apply(RequestTemplate template) {
        log.debug("请求拦截了");
    }
}

2.3.2 配置拦截器

1)全局配置
我们可以在配置类中配置自定义的OpenFeign拦截器。

@Configuration
public class FeignConfig {
    @Bean
    public TraceIdFeignInterceptor feignInterceptor(){
        return new TraceIdFeignInterceptor ();
    }
}

2)局部配置
我们也可以在application.yaml文件中对自定义的OpenFeign拦截器进行局部配置。

feign.client.config.order-service.requestInterceptors[0]=com.beiyou.TraceIdFeignInterceptor #自定义拦截器的完整类路径
feign.client.config.order-service.requestInterceptors[1]=com.beiyou.xxxxxxxxx

3)常用简化版
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值