当前位置: 首页 > news >正文

OpenFeign 切换HttpClient遇到的问题

背景

OpenFeign支持三种Http请求方式,默认情况下通过jdk中的HttpURLConnection向下游服务发起http请求(详见下图,源码详见feign.Client.Default),

默认的Client 采用 HttpURLConnection, 这种是无法复用的,每次都重新新建,调用量如果过大,就容易请求失败;

目前OpenFeign支持另外2中 HttpClient 和 OkHttp,这里记录HttpClient的使用
在这里插入图片描述

开启

# 远程调用优化
feign:okhttp:enabled: falsehttpclient:# 默认Feign使用的是JDK自带的URLConnection进行Http请求的,手动替换成Apache HttpClient专用的通信组件enabled: trueconfig:default: # 设置的全局超时时间connectTimeout: 3000 # 请求连接的超时时间readTimeout: 5000 # 请求处理的超时时间
// 保持和引入的spring-cloud-starter-openfeign版本一致即可;<dependency><groupId>io.github.openfeign</groupId><artifactId>feign-httpclient</artifactId></dependency>

遇到的问题

1、因为我这边是直接在测试中调用;

直接相应的类开启2个参数:

@EnableFeignClients(basePackages ={"com.xxx.xxx"})
@ImportAutoConfiguration({FeignAutoConfiguration.class, FeignConfig.class})

问题缺少配置:

由于是直接在测试中取的数据

需要自己手动注入一些配置

在这里插入图片描述

FeignAutoConfiguration 类中就需要;ApacheHttpClientFactory, 这个注入类;

在这里插入图片描述

这个类默认的实现有一个:

DefaultApacheHttpClientFactory,还需要找一个注入的配置;

这个配置在:HttpClientConfiguration

在这里插入图片描述
最终加载配置变更为:

@ImportAutoConfiguration({FeignAutoConfiguration.class, FeignConfig.class, HttpClientConfiguration.class})

同理: 如果要测试 OkHttp的调用, 也要加入这个配置;

相关文章:

OpenFeign 切换HttpClient遇到的问题

背景 OpenFeign支持三种Http请求方式&#xff0c;默认情况下通过jdk中的HttpURLConnection向下游服务发起http请求&#xff08;详见下图&#xff0c;源码详见feign.Client.Default&#xff09;&#xff0c; 默认的Client 采用 HttpURLConnection&#xff0c; 这种是无法复用的…...

流计算框架storm概览

Attention: supervison 和 nimbus的状态都实时保存在zookeeper集群中和本地. Enchance, this means you can kill -9 Nimbus or the Supervisors and theyll start back up as nothing happened. Topologies 1. storm jar all-my-code.jar org.apache.storm.MyTopology a…...

如何使用Coercer强制Windows Server认证任意主机

关于Coercer Coercer是一款功能强大的Python脚本&#xff0c;该工具可以通过九种不同的方法来强制让一台Windows Server认证任意主机。 功能介绍 1、自动检测远程设备的开放SMP管道&#xff1b; 2、一一调用存在安全漏洞的RPC功能来强制一台Windows Server认证任意主机&#…...

【小程序】已有公众号认证,一步一步申请小程序(图文)

一、登陆公众号后台&#xff0c;找到左侧广告与服务&#xff0c;小程序管理&#xff0c;开通 二、选择快速注册认证小程序 三、快速创建 四、选择微信认证资质&#xff08;复用&#xff09;&#xff0c;这样不用再付认证费了 五、需要一个新的邮箱&#xff0c;这点挺让人无语&a…...

Redis学习笔记:缓存运用常见问题

这是本人学习的总结&#xff0c;主要学习资料如下 马士兵教育 目录1、数据一致性的问题1.1、新增数据一致性的问题1.2、修改/删除一致性问题1.2.1、操作分析1.2.1、总结和再深入2、缓存穿透&#xff0c;缓存击穿和缓存雪崩2.1、缓存穿透&#xff08;查不到&#xff09;2.1.1、…...

使用python 脚本挑出coco 数据集中的某一类数据

文章大纲 简介代码样例制作一个走路玩手机数据集简介 MS COCO的全称是Microsoft Common Objects in Context,起源于微软于2014年出资标注的Microsoft COCO数据集,与ImageNet竞赛一样,被视为是计算机视觉领域最受关注和最权威的比赛之一。 COCO数据集是一个大型的、丰富的物…...

Python虚拟环境(pipenv、venv、conda一网打尽)[通俗易懂]

一、什么是虚拟环境 1. 什么是Python环境 要搞清楚什么是虚拟环境&#xff0c;首先要清楚Python的环境指的是什么。当我们在执行python test.py时&#xff0c;思考如下问题&#xff1a; python哪里来&#xff1f;这个主要归功于配置的系统环境变量PATH&#xff0c;当我们在命…...

Android Kotlin实战之高阶使用泛型扩展协程懒加载详解

前言&#xff1a; 通过前面几篇文章&#xff0c;我们已基本掌握kotlin的基本写法与使用&#xff0c;但是在开发过程中&#xff0c;以及一些开源的API还是会出现大家模式的高阶玩法以及问题&#xff0c;如何避免&#xff0c;接下来讲解针对原来的文章进行一些扩展&#xff0c;解…...

数字映射:数字孪生技术的应用场景及作用

对于许多行业来说&#xff0c;数字孪生技术是未来。数字孪生定义数字孪生不仅仅是某物的副本或克隆&#xff0c;它是对象或系统的动态实时表示。数字孪生是一种虚拟模型&#xff0c;旨在准确反映物理对象。是物理对象、流程、服务或环境的数字表示&#xff0c;其行为和外观与现…...

配置二层远程端口镜像案例

实验拓扑&#xff1a; 实验需求&#xff1a; 如图1所示&#xff0c;某公司行政部通过SwitchA与外部Internet通信&#xff0c;监控设备Server通过SwitchB与SwitchA相连。 现在希望Server能够远程对行政部访问Internet的流量进行监控。 操作步骤&#xff1a; 配置观察端口 # 在…...

Linux-0.11 kernel目录fork.c详解

Linux-0.11 kernel目录fork.c详解 fork.c中主要实现内核对于创建新的进程的行为。其中copy_process是其最核心的函数。 copy_process int copy_process(int nr,long ebp,long edi,long esi,long gs,long none,long ebx,long ecx,long edx,long fs,long es,long ds,long eip,…...

如何或者无插件Web页面监控播放软件LiveNVR的固定视频流地址,实现大屏上墙、播放、视频分析等目的

1、LiveNVR介绍 LiveNVR的安防监控的视频直播&#xff0c;可以按标准的Onvif/RTSP协议接入监控设备&#xff0c;也可以通过海康、大华、天地伟业等厂家私有SDK接入监控&#xff0c;实现web页面的播放和录像回放。 可以分发HTTP-FLV、WS-FLV、WebRTC、RTMP、HLS(M3U8)、RTSP等多…...

postman断言脚本(2)

https://learning.postman.com/docs/writing-scripts/script-references/test-examples/#parsing-response-body-data状态码pm.test("Status code is 200",function(){pm.response.to.have.status(200);});pm.test("Status code is 200",()>{pm.expect(…...

js中?.、??的具体用法

1、?. &#xff08;可选链运算符&#xff09; 在javascript中如果一个值为null、undefined&#xff0c;直接访问下面的属性&#xff0c; 会报 Uncaught TypeError: Cannot read properties of undefined 异常错误。 而在真实的项目中是会出现这种情况&#xff0c;有这个值就…...

刷题笔记1 | 704. 二分查找,27. 移除元素

704. 二分查找 给定一个 n 个元素有序的&#xff08;升序&#xff09;整型数组 nums 和一个目标值 target &#xff0c;写一个函数搜索 nums 中的 target&#xff0c;如果目标值存在返回下标&#xff0c;否则返回 -1。 输入: nums [-1,0,3,5,9,12], target 9 输出: 4 …...

柔性电路板的优点、分类和发展方向

柔性电路板是pcb电路板的一种&#xff0c;又称为软板、柔性印刷电路板&#xff0c;主要是由柔性基材制作而成的一种具有高可靠性、高可挠性的印刷电路板&#xff0c;具有厚度薄、可弯曲、配线密度高、重量轻、灵活度高等特点&#xff0c;主要用在手机、电脑、数码相机、家用电器…...

OpenCV入门(二)快速学会OpenCV1图像基本操作

OpenCV入门&#xff08;一&#xff09;快速学会OpenCV1图像基本操作 不讲大道理&#xff0c;直接上干货。操作起来。 众所周知&#xff0c;OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大。今天就从读取图片&#xff0c;显示图片&#xff0c;输出图片信息和简单的…...

Redis源码---有序集合为何能同时支持点查询和范围查询

目录 前言 Sorted Set 基本结构 跳表的设计与实现 跳表数据结构 跳表结点查询 跳表结点层数设置 哈希表和跳表的组合使用 前言 有序集合&#xff08;Sorted Set&#xff09;是 Redis 中一种重要的数据类型&#xff0c;它本身是集合类型&#xff0c;同时也可以支持集合中…...

从计费出账加速的设计谈周期性业务的优化思考

1号恐惧症 你有没有这样的做IT的朋友&#xff1f;年纪轻轻&#xff0c;就头发花白或者秃顶&#xff0c;然后每个月周期性的精神不振&#xff0c;一到月底&#xff0c;就有明显的焦虑。如果有&#xff0c;他可能就是运营商行业做计费运营的&#xff0c;请对他好点&#xff0c;特…...

垃圾回收的概念与算法(第四章)

《实战Java虚拟机&#xff1a;JVM故障诊断与性能优化 (第2版)》 第4章 垃圾回收的概念与算法 目标&#xff1a; 了解什么是垃圾回收学习几种常用的垃圾回收算法掌握可触及性的概念理解 Stop-The-World&#xff08;STW&#xff09; 4.1. 认识垃圾回收 - 内存管理清洁工 垃圾…...

第4章 编码规范-4.3 导入规范

导入语句包括import语句和from…import语句&#xff0c;该语句需要位于编码注释和文件注释之后&#xff0c;全局变量和常量之前。建议每一条导入语句只导入一个模块。示例代码如下&#xff1a;# 资源包\Code\chapter4\4.3\0406.py# 建议每一条导入语句只导入一个模块import rei…...

Nunchaku FLUX.1-dev 结合Transformer架构:提升图像生成一致性与细节

Nunchaku FLUX.1-dev 结合Transformer架构&#xff1a;提升图像生成一致性与细节 最近在尝试各种文生图模型时&#xff0c;我发现了一个挺有意思的现象&#xff1a;很多模型在处理简单描述时表现不错&#xff0c;但一旦遇到包含多个对象、复杂关系或者长段描述的提示词&#x…...

CTFHub | 解密MySQL、Redis、MongoDB流量中的隐藏Flag

1. 数据库流量分析入门&#xff1a;为什么需要Wireshark&#xff1f; 当你参加CTF比赛时&#xff0c;经常会遇到需要从数据库流量中寻找Flag的题目。这类题目通常会给你一个抓包文件&#xff08;pcap格式&#xff09;&#xff0c;里面记录了MySQL、Redis或MongoDB等数据库的网络…...

SpringCloud Alibaba与Nacos版本不匹配?手把手教你解决‘Client not connected‘错误

SpringCloud Alibaba与Nacos版本兼容性实战&#xff1a;彻底解决Client not connected问题 微服务架构的复杂性往往隐藏在细节之中。当SpringCloud Alibaba项目启动时控制台突然抛出Client not connected, current status:STARTING的红色警告&#xff0c;不少开发者都会心头一紧…...

AEB紧急制动系统与carsim及simulink联仿技术:卓越效果与性能的完美结合

紧急制动系统AEB&#xff0c;carsim与simulink联仿&#xff0c;效果极好 &#xff0c;踩下刹车的那一刻&#xff0c;方向盘突然传来剧烈震动。盯着屏幕里那辆虚拟的前车尾灯&#xff0c;我手心全是汗——这已经是今天第三次测试紧急制动了。Carsim里那台SUV正以60km/h的速度冲向…...

气象数据可视化必看:ERA5降水资料从m转mm的3种场景解决方案

气象数据可视化实战&#xff1a;ERA5降水资料单位换算与场景化应用指南 当你在深夜的实验室里盯着屏幕上那一串以"m"为单位的降水数据时&#xff0c;是否曾困惑过如何将它们转化为更符合学术惯例的"mm"&#xff1f;作为处理过数百个气象数据集的老手&#…...

Python将Parquet文件转换为JSONL格式文件

prompt:如何使用 Python 将 Parquet 文件转换为 JSONL 格式文件&#xff1f; 请提供完整的代码示例&#xff0c;包括使用 pandas 或 pyarrow 读取 Parquet 文件&#xff0c; 并将每行数据以 JSON 格式逐行写入 JSONL 文件的实现方式。 假设 Parquet 文件包含结构化数据&#xf…...

当NB-IoT遇上同步轨道卫星:GEO场景下的定时关系增强全指南(基于3GPP Release 17最新规范)

GEO卫星场景下NB-IoT定时关系增强技术解析 1. GEO卫星通信与NB-IoT的技术融合挑战 地球静止轨道&#xff08;GEO&#xff09;卫星通信与窄带物联网&#xff08;NB-IoT&#xff09;技术的结合&#xff0c;为全球物联网覆盖提供了革命性解决方案。GEO卫星位于地球赤道上空35,786公…...

选吉他不踩坑:合板、单板、全单材质深度解析,新手看懂这篇就够

对于新手来说&#xff0c;挑选吉他时最容易被“合板”“单板”“全单”这些专业术语绕晕。其实&#xff0c;这三者的核心区别在于木材的构成方式&#xff0c;而木材直接决定了吉他的音色、手感以及使用寿命。今天我们就抛开品牌干扰&#xff0c;纯科普这三种材质的底层逻辑&…...

Wan2.2-T2V-A5B提示词怎么写?新手快速出效果的实用指南

Wan2.2-T2V-A5B提示词怎么写&#xff1f;新手快速出效果的实用指南 1. 认识Wan2.2-T2V-A5B视频生成模型 Wan2.2-T2V-A5B是一款由通义万相开源的轻量级文本到视频生成模型&#xff0c;拥有50亿参数规模。虽然它生成的视频分辨率是480P&#xff0c;但在时序连贯性和运动推理能力…...