springcloud openfeign 请求报错 java.net.UnknownHostException:

article/2025/8/22 13:58:38

现象

在这里插入图片描述

背景

项目内部服务之间使用openfeign通过eureka注册中心进行服务间调用,与外部通过http直接调用。外部调用某个业务方提供的接口需要证书校验,因对方未提供证书故设置了忽略证书校验代码如下

@Configuration
public class IgnoreHttpsSSLClient {@Bean
@ConditionalOnMissingBean
public Client feignClient(CachingSpringLoadBalancerFactory cachingFactory,
SpringClientFactory clientFactory) throws NoSuchAlgorithmException, KeyManagementException {
SSLContext ctx = SSLContext.getInstance("SSL");
X509TrustManager tm = new X509TrustManager() {
@Override
public void checkClientTrusted(X509Certificate[] chain,
String authType) throws CertificateException {
}@Override
public void checkServerTrusted(X509Certificate[] chain,
String authType) throws CertificateException {
}@Override
public X509Certificate[] getAcceptedIssuers() {
return null;
}
};
ctx.init(null, new TrustManager[]{tm}, null);
return new LoadBalancerFeignClient(new Client.Default(ctx.getSocketFactory(),
new HostnameVerifier() {@Override
public boolean verify(String hostname, SSLSession session) {
// TODO Auto-generated method stub
return true;
}
}),
cachingFactory, clientFactory);
}}

看着没毛病,但@Configuration注解其实是对所有的feignclient都做了忽略证书处理。不过不要紧,因为其他服务都不需要证书,如此,程序运行了很久,终于一次架构升级的需求到来,开发人员升级完版本上述代码出现了编译错误,因时间久远某些jar发生了变更,不得已开发人员删除了部分内容,更新了代码然后没经过充分测试上线了,bug如期产生了,更新代码如下

@Configuration
public class IgnoreFeignHttpsSSLClient {
@Bean
@ConditionalOnMissingBean
public Client feignClient() {
try {
SSLContext ctx = SSLContext.getInstance("SSL");
X509TrustManager tm = new X509TrustManager() {
@Override
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}@Override
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}@Override
public X509Certificate[] getAcceptedIssuers() {
return null;
}
};
ctx.init(null, new TrustManager[]{tm}, null);
return new Client.Default(ctx.getSocketFactory(), (hostname, session) -> true);
} catch (Exception e) {
return null;
}
}
}

给各位3s秒钟能看出问题么,好了公布答案feignclient 由LoadBalancerFeignClient 更改成了默认feignclient导致服务间调用全都走http调用所以报了java.net.UnknownHostException。

解决方法

产生问题根本原因是应用@configuration注解作用了所有feignclient,那解决方案很简单删掉这个注解即可。


http://www.hkcw.cn/article/BQjcfUvXRx.shtml

相关文章

深度学习核心网络架构详解:从 CNN 到 LSTM

深度学习领域中,不同的网络架构适用于处理各种复杂的任务。本文将深入探讨几种必须掌握的核心网络架构,包括卷积神经网络 (CNN)、循环神经网络 (RNN) 及其变体长短时记忆网络 (LSTM) 和门控循环单元 (GRU),并结合具体案例和代码实现进行详细讲解。 一、卷积神经网络 (CNN) …

美国上诉法院暂时恢复实施特朗普政府关税政策

当地时间5月29日,美国联邦巡回上诉法院批准特朗普政府的请求,暂时搁置美国国际贸易法院此前做出的禁止执行特朗普政府依据《国际紧急经济权力法》对多国加征关税措施的行政令的裁决。联邦巡回上诉法院在裁决书中说,美国政府的请求已获批准,在本法院审议相关动议文件期间,美…

全球最大医院原院长涉嫌严重违纪违法 医疗界震动

全球最大医院原院长涉嫌严重违纪违法!今日,河南省纪委监委发布消息,河南省政协人口资源环境委员会主任阚全程因涉嫌严重违纪违法,正接受纪律审查和监察调查。此消息在医疗领域引发广泛关注。阚全程曾长期执掌“亚洲最大医院”郑大一附院,使得该事件备受瞩目。阚全程1963年…

“亚洲最大医院”原院长被查 医疗反腐再掀波澜

“亚洲最大医院”原院长被查 医疗反腐再掀波澜!河南省纪委监委今日发布消息,河南省政协人口资源环境委员会主任阚全程因涉嫌严重违纪违法,正接受纪律审查和监察调查。这一消息在医疗领域引起广泛关注。阚全程曾长期担任“亚洲最大医院”郑大一附院的院长,使得该事件更加引人…

设计模式:观察者模式 - 实战

一、观察者模式场景 1.1 什么是观察者模式? 观察者模式(Observer Pattern)观察者模式是一种行为型设计模式,用于定义一种一对多的依赖关系,当对象的状态发生变化时,所有依赖于它的对象都会自动收到通知并更…

首发!PPIO派欧云上线DeepSeek-R1-0528

今天凌晨,“小版本试升级”的 DeepSeek-R1-0528 在 Hugging Face 正式开源。 经 PPIO派欧云工程师测试,这个所谓的“小版本”更新在代码领域大幅增强,凭借简单朴素的提示词就能生成小游戏、图片、精美的网页,生成效果可媲美 Claud…

国务院任免21名干部 涉及多个重要职位调整

国务院任免21名干部 涉及多个重要职位调整!据人社部网站5月29日消息,国务院任免了21名国家工作人员。郭彩云(女)被任命为审计署副审计长,王军为海关总署副署长,蔡自力为国家税务总局副局长,邹晓东为国务院参事室主任,赵世通为国务院台湾事务办公室副主任,李长喜为国家…

【STM32开发板】电源设计(电压基准、滤波电容)

一、基准电压源 基准电压源是一种能提供稳定、精确、不随温度、负载、电源电压变化而波动的电压源。它广泛应用于电子电路中,尤其是在需要高精度和稳定性的场合,如模数转换(ADC)、 数模转换(DAC)、稳压电路…

男大学生正在批量减少:教育竞争中的性别差异显现

男大学生正在批量减少:教育竞争中的性别差异显现!毕业季即将来临,校园里随处可见穿着学位服的毕业生在草坪上拍照。她们对着镜头比出剪刀手,或是抱着鲜花和室友笑成一团。图书馆前台阶上,三五成群的学生捧着论文材料匆匆走过,教室里答辩结束的学生红着眼眶与导师拥抱。仔…

K8S StatefulSet 快速开始

其实这篇文章的梗概已经写了很久了,中间我小孩出生了,从此人间多了一份牵挂。抽出一些时间去办理新生儿相关手续。初为人父确实艰辛,就像学技术一样,都需要有极大的耐心,付出很多的时间。 一、引子 1.1、独立的存储 …

【笔记】suna部署之获取 Daytona API key 及 Daytona Sandbox 设置

#工作记录 Daytona 注册 Daytona 账户 访问Daytona 官方网站。点击注册按钮,按照提示填写相关信息完成注册。 获取 Daytona API 密钥 登录 Daytona 账户。进入账户设置页面,查找生成 API 密钥的选项,生成并复制 API 密钥,用于 S…

昇腾首发支持,阶跃星辰 “改图大师” Step1X-Edit开源并上线魔乐社区

4月27日,阶跃星辰正式发布并开源图像编辑大模型 Step1X-Edit ,性能达到开源 SOTA 。该模型总参数量为19B (7B MLLM 12B DiT),具备语义精准解析、身份一致性保持、高精度区域级控制三项关键能力;支持11类高频图像编辑任务类型&…

int和Integer的区别

Java是面向对象的语言,一切操作都以对象为基础,像集合里面也只支持存储Object类型数据,普通类型无法通过集合存储, 在Java中,int和Integer是两种不同的类型,它们有以下主要区别: 一、类型分类…

Oracle/openGauss中,DATE/TIMESTAMP与数字日期/字符日期比较

ORACLE 运行环境 openGauss 运行环境 0、前置知识 ORACLE:DUMP()函数用于返回指定表达式的数据类型、字节长度及内部存储表示的详细信息 SELECT DUMP(123) FROM DUAL; -- Typ2 Len3: 194,2,24 SELECT DUMP(123) FROM DUAL;-- Typ96 Len3: 49,50,51 -- ASCII值&am…

应用于公路路面破损状况检测的视觉系统

随着公路交通的日益发展,公路交通也是经济命脉,路面病害检测直接关系到交通安全,公路路面检测是养护管理的核心环节,及时识别裂缝、坑槽、车辙等病害,避免因路面损坏引发交通事故。 公路路面基病害检测系统是基于数字图…

ZeroSearch: 无需搜索即可激发LLM的搜索能力

论文地址:https://arxiv.org/abs/2505.04588v2 摘要 有效的的信息搜索对于增强大型语言模型 (LLM) 的推理和生成能力至关重要。 最近的研究探索了使用强化学习 (RL) 通过与现实世界环境中的实时搜索引擎交互来提高 LLM 的搜索能力。 虽然这些方法显示出可喜的结果&…

Linux实操篇-进程管理

目录 传送门前言一、进程管理概念二、进程管理实战1. **查看进程**ps 命令top 命令htop 命令 2. **进程的启动和终止**启动进程停止进程使用 pkill 或 killall 3. **进程优先级管理**nice 和 renice 命令top 中调整进程优先级 4. **进程的查看与控制**pgrep 命令pstree 命令str…

DAY 14 SHAP库的绘制

上面这个图就是一个比较直观的解释。机器学习模型一般都是一个黑盒。比如某个模型要进行一些预测任务,首先对模型输入一些已知条件(Age65,SexF,BP180,BMI40),然后模型根据输入进行训练,最终训练完的模型可以对该条件输…

如何避免客户频繁更换对接人

避免客户频繁更换对接人的关键措施包括建立稳定的客户关系、提高客户对接人的专业素养、建立高效的沟通机制、增强客户满意度等。其中,建立稳定的客户关系是避免客户频繁更换对接人的核心,只有当客户信任你的对接人并认可其专业性,才会持续稳…

5.29打卡

浙大疏锦行 DAY 38 Dataset和Dataloader类 知识点回顾: 1. Dataset类的__getitem__和__len__方法(本质是python的特殊方法) 2. Dataloader类 3. minist手写数据集的了解 作业:了解下cifar数据集,尝试获取其中一张图…