您的位置:首页 > 科技 > IT业 > OpenFeign

OpenFeign

2024/11/17 19:39:28 来源:https://blog.csdn.net/qq_53098873/article/details/141830261  浏览:    关键词: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 中的拦截器是对服务调用者(也叫消费者)调用服务提供者的过程进行拦截。
Spring MVC 中的拦截器是对客户端(浏览器)请求服务端的过程进行拦截。

2.3.1 自定义OpenFeign拦截器类

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

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

2.3.2 配置拦截器

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

@Configuration
public class FeignConfig {@Beanpublic 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)常用简化版
在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com