(十)SpringCloud系列——openfeign的高级特性实战内容介绍

前言

本节内容主要介绍一下SpringCloud组件中微服务调用组件openfeign的一些高级特性的用法以及一些常用的开发配置,如openfeign的超时控制配置、openfeign的重试机制配置、openfeign集成高级的http客户端、openfeign的请求与响应压缩功能,以及如何开启openfeign的日志查看功能,便于我们更好的定位问题等。关于微服务集成开发openfeign的实战内容,可参考作者的往期博客内容。

正文

OpenFeign的日志配置

①在openfeign的配置类中添加日志的bean配置

@Bean
public Logger.Level feignLoggerLevel() {return Logger.Level.FULL;
}

②在调用方的配置文件applicaton.yml中,配置openfeign的接口日志,这里配置的是debug级别的日志

③ 启动微服务项目,查看openfeign的接口调用日志

OpenFeign的超时配置

①openfeign超时的全局配置,这里设置为5秒钟,如果没有配置,系统默认配置是60秒

@Bean
public Request.Options options() {return new Request.Options(60, TimeUnit.SECONDS, 60, TimeUnit.SECONDS, true);
}

 ②在接口提供方打断点,模拟接口响应超时,通过日志,我们可以确认超时配置是否已经生效

③在调用方的配置文件application.yml中针对不同微服务配置超时时间,该配置优先级高于全局的配置

feign:client:config:aiyundun-manager: #服务提供方connectTimeout: 3000  # 连接超时时间,单位为毫秒readTimeout: 3000  # 读取超时时间,单位为毫秒

 ④局部配置测试结果

OpenFeign的请求重试机制设置

①在配置类中配置重试策略,如果不配置,默认是不开启重试策略

@Bean
public Retryer myRetryer()
{//最大请求次数为3(1+2),初始间隔时间为100ms,重试间最大间隔时间为1sreturn new Retryer.Default(500,1,3);
}

 ②查看测试日志,间隔3秒钟会尝试重复调用,尝试调用了三次

OpenFeign的请求响应的压缩功能配置

①在调用方配置文件application.yml中配置openfeign请求和响应的压缩功能

feign:client:config:aiyundun-manager: #服务提供方connectTimeout: 3000  # 连接超时时间,单位为毫秒readTimeout: 3000  # 读取超时时间,单位为毫秒compression:request:enabled: truemin-request-size: 2048 #最小触发压缩的大小mime-types: text/xml,application/xml,application/json #触发压缩数据类型response:enabled: true

 ②查看openfeign调用日志

OpenFeign替换默认的http请求客户端

①添加httpclient5客户端maven依赖配置

<!-- httpclient5-->
<dependency><groupId>org.apache.httpcomponents.client5</groupId><artifactId>httpclient5</artifactId><version>5.3</version>
</dependency>
<!-- OpenFeign 依赖 -->
<dependency><groupId>io.github.openfeign</groupId><artifactId>feign-core</artifactId><version>11.5</version>
</dependency>
<dependency><groupId>io.github.openfeign</groupId><artifactId>feign-httpclient</artifactId><version>11.5</version>
</dependency>

②在调用方的application.yml中开启httpclient客户端,默认就是开启状态,可跳过此步骤

③ 查看是否替换成功

结语

至此,关于openfeign的高级特性实战内容介绍到这里就结束了,我们下期见。。。。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/508356.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2.模拟问题——5.星期几与字符串对应

输入输出示例 输入&#xff1a; 9 October 2001 14 October 2001 输出&#xff1a; Tuesday Sunday 【原题链接】 字符串处理 C风格的字符串 字符数组&#xff0c;以’\0‘结尾建议在输入输出语句中使用 C风格的字符串 #include <string> using namespace std;初始化…

Electron通过预加载脚本从渲染器访问Node.js

问题&#xff1a;如何实现输出Electron的版本号和它的依赖项到你的web页面上&#xff1f; 答案&#xff1a;在主进程通过Node的全局 process 对象访问这个信息是微不足道的。 然而&#xff0c;你不能直接在主进程中编辑DOM&#xff0c;因为它无法访问渲染器 文档 上下文。 它们…

FreeRTOS学习笔记——FreeRTOS中断管理

精华总结&#xff1a; 中断优先级0为最高&#xff0c;任务优先级0为最低 中断优先级分组中为方便rtos管理4bit全部设置成抢占优先级 32单片机的中断管理是由3个寄存器完成&#xff08;名字忽略&#xff0c;具体功能忽略&#xff09;&#xff0c;三个寄存器都是32bit&#xff0c…

【JavaScript】手写 Promise(静态方法)

手写Promise-静态方法resolve 需求: 返回一个带有成功原因的Promise对象 HMPromise.resolve(new HMPromise((resolve, reject) > {// resolve(resolve)// reject(reject)// throw error })).then(res > {console.log(res:, res) }, err > {console.log(err:, err) …

Google Dremel和parquet的复杂嵌套数据结构表征方法解析

转载请注明出处。作者&#xff1a;archimekai 核心参考文献&#xff1a; Dremel: Interactive Analysis of Web-Scale Datasets 文章目录 引言复杂嵌套数据结构的无损表征问题Dremel论文中提出的表征方法parquet备注 引言 Dremel是Google的交互式分析系统。Google大量采用prot…

阅读笔记 | Transformers in Time Series: A Survey

阅读论文&#xff1a; Wen, Qingsong, et al. “Transformers in time series: A survey.” arXiv preprint arXiv:2202.07125 (2022). 这篇综述主要对基于Transformer的时序建模方法进行介绍。论文首先简单介绍了Transformer的基本原理&#xff0c;包括位置编码、多头注意力机…

01 MySQL之连接

1. 连接 1.0 基础认知 多表(主表)和一表(从表的区别): 多表一般是主表&#xff0c;一般存储主要数据&#xff0c;每个字段都可能存在重复值&#xff0c;没有主键&#xff0c;无法根据某个字段定位到准确的记录&#xff1b; 一表一般是从表&#xff0c;一般存储辅助数据&…

基础二分学习笔记

模板 : 个人倾向第一种 ; 整数二分 : 最大化查找 : 可行区域在左侧 : 查找最后一个<q的数的下标 : int find(int q){// 查找最后一个 < q 的下标 int l 0 , r n 1 ;while(l 1 < r){int mid l r >> 1 ;if(a[mid]<q) l mid ;else r mid ;}return…

如何限制一个账号只在一处登陆

大家好&#xff0c;我是广漂程序员DevinRock&#xff01; 1. 需求分析 前阵子&#xff0c;和问答群里一个前端朋友&#xff0c;随便唠了唠。期间他问了我一个问题&#xff0c;让我印象深刻。 他问的是&#xff0c;限制同一账号只能在一处设备上登录&#xff0c;是如何实现的…

第二篇【传奇开心果系列】Python的自动化办公库技术点案例示例:深度解读Pandas金融数据分析

传奇开心果博文系列 系列博文目录Python的自动化办公库技术点案例示例系列 博文目录前言一、Pandas 在金融数据分析中的常见用途和功能介绍二、金融数据清洗和准备示例代码三、金融数据索引和选择示例代码四、金融数据时间序列分析示例代码五、金融数据可视化示例代码六、金融数…

CUDA 中的线程组织

明朝那些事中有一句话&#xff1a;我之所以写徐霞客是想告诉你&#xff0c;所谓千秋霸业万古流芳&#xff0c;与一件事相比&#xff0c;其实都算不了什么&#xff0c;这件事情就是——用你喜欢的方式度过一生。 我们以最简单的 CUDA 程序&#xff1a;从 GPU 中输出 Hello World…

C++基于多设计模式下的同步异步日志系统day4

&#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;C基于多设计模式下的同步&异步日志系统 &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 只要内容主要实现了同步日志消息…