如何完全剔除对Eureka的依赖,报错Cannot execute request on any known server

【现象】

程序运行报错如下:

com.netflix.discovery.shared.transport.TransportException报错Cannot execute request on any known server

【解决方案】

(1)在Maven工程中的pom去掉Eureka相关的引用(注释以下部分)

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId></dependency>

(2)在工程中搜索,org.springframework.cloud.netflix.eureka相关的import引用

(3)服务器上,打包的jar或者在lib/等目录下,删除如下jar包(否则还是会一直打印错误日志,具体原因参见原因分析)

spring-cloud-starter-netflix-eureka.xxxxxx.jar

spring-cloud-netflix-eureka-client.xxxxxx.jar

【原因分析】

主要分析一下Eureka是如何注册成为Spring中Bean的,在Spring中会调用finishRefresh()方法,代码如下:

protected void finishRefresh() {// Clear context-level resource caches (such as ASM metadata from scanning).//清空缓存clearResourceCaches();// Initialize lifecycle processor for this context.//初始化一个LifecycleProcessor,在Spring启动的时候启动bean,在spring结束的时候销毁beaninitLifecycleProcessor();// Propagate refresh to lifecycle processor first.//调用LifecycleProcessor的onRefresh方法,启动实现了Lifecycle接口的beangetLifecycleProcessor().onRefresh();// Publish the final event.//发布ContextRefreshedEventpublishEvent(new ContextRefreshedEvent(this));// Participate in LiveBeansView MBean, if active.//注册MBean,通过JMX进行监控和管理LiveBeansView.registerApplicationContext(this);
}

        重点关注 getLifecycleProcessor().onRefresh() ,它是调用生命周期处理器的onrefresh方法,找到SmartLifecycle接口的所有实现类并调用start方法。
  其调用链路为:DefaultLifecycleProcessor.startBean -> start() -> doStart() -> bean.start()

        而Eureka中,正是利用这个机制,而对应的类就是 EurekaAutoServiceRegistration(在spring-cloud-starter-netflix-eureka.xxxxxx.jar里),就实现了 SmartLifeCycle,服务注册自动配置类。

        此处就不对Eureka原理进行分析了,贴图一张供大家参考(有兴趣的自行调试代码)

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

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

相关文章

从AI换脸到篡改图像,合合信息如何提升视觉内容安全?

本文目录 引言一、AI“真假之战”下的发展现状与考验挑战1.1 视觉内容安全现状与技术分类1.2视觉内容安全企业1.3视觉内容安全领域挑战 二、开山之石&#xff1a;引领视觉内容安全的创新之路2.1合合内容安全系统2.2发起编制相关技术规范2.3参与篡改检测挑战赛 三、视觉内容安全…

虚幻引擎结构之ULevel

在虚幻引擎中&#xff0c;场景的组织和管理是通过子关卡&#xff08;Sublevel&#xff09;来实现的。这种设计不仅提高了资源管理的灵活性&#xff0c;还优化了游戏性能&#xff0c;特别是在处理大型复杂场景时。 1. 场景划分模式 虚幻引擎采用基于子关卡的场景划分模式。每个…

log4j2漏洞复现(CVE-2021-44228)

靶场环境 步骤一&#xff1a;设置出战规则 步骤二&#xff1a;开启靶场 cd vulhub cd log4j cd CVE-2021-44228 docker-compose up -d docker ps 访问端口 靶机开启 步骤三&#xff1a;外带注入 获得dnslog 靶机访问dnslog 得到dnslog的二级域名信息 步骤四&#xff1a;构造…

美国加州房价数据分析01

1.项目简介 本数据分析项目目的是分析美国加州房价数据&#xff0c;预测房价中值。 环境要求&#xff1a; ancondajupyter notebookpython3.10.10 虚拟环境&#xff1a; pandas 2.1.1 numpy 1.26.1 matplotlib 3.8.0 scikit-learn1.3.1 2. 导入并探索数据集 通用的数据分析…

ML-Agents 概述(二)

注&#xff1a;本文章为官方文档翻译&#xff0c;如有侵权行为请联系作者删除 ML-Agents Overview - Unity ML-Agents Toolkit–原文链接 ML-Agents 概述&#xff08;一&#xff09; ML-Agents 概述&#xff08;二&#xff09; 训练方法&#xff1a;特定环境 除了上一节介绍的…

nlp新词发现——浅析 TF·IDF

传统nlp任务处理文本及其依赖已有的词表&#xff0c;只有在词表里出现的词才能被识别并加以处理。但这也带来了一些问题&#xff1a; 假设没有词表&#xff0c;如何从文本中发现新词&#xff1f; 随着时间推移&#xff0c;新词会不断出现&#xff0c;固有词表会过时&#xff0…

OpenAI 普及 ChatGPT,开通热线电话,近屿智能深耕AI培训

12月19日&#xff0c;在OpenAI直播活动的第10天&#xff0c;宣布允许用户通过电话或WhatsApp与ChatGPT进行交互。并在美国推出 ChatGPT 热线电话&#xff0c;用户拨打后可与 ChatGPT 进行语音对话。 这项服务的一个亮点在于它兼容各种类型的通信设备——不论是现代智能手机如iP…

vue中proxy代理配置(测试二)

接口地址&#xff1a;https://ss.dd.dd.d.cn:9006/thirdist/portalApi/biz-api/eemp/supervision/v1//getPeiCountData?batch2&cent0 1、配置一&#xff08;代理没起作用&#xff09; &#xff08;1&#xff09;设置baseURL为https://ss.dd.dd.d.cn:9006 &#xff08;2&am…

国自然面上项目分享|基于人工智能和病理组学的早癌筛查算法研究|基金申请·24-12-24

小罗碎碎念 今天分享的项目为【常规面上项目】&#xff0c;执行年限为2018年1月至2021年12月&#xff0c;直接费用为55万元。 今天分享的这个项目很有意思&#xff0c;因为这个项目的成果是团队2020年申报基金委优青的材料&#xff0c;并且还有临床验证和商业转化&#xff0c;值…

地址踩踏问题

malloc分配地址大小不足&#xff0c;如 pstruct只分配了一个字节的地址&#xff0c;handle访问时需要访问8个字节的数据&#xff0c;此时虽然可以正常打印&#xff0c;但如果其他程序使用了未分配的7个字节地址&#xff0c;就会导致该handle无法正确访问

快速部署一套Kubernetes集群

一、准备环境 服务器规划&#xff1a; 角色 IP地址 k8s-master 192.168.1.71 k8s-node1 192.168.1.72 k8s-node2 192.168.1.73 服务器要求&#xff1a; 建议最小硬件配置&#xff1a;2核CPU、2G内存、20G硬盘。服务器可以访问互联网&#xff0c;会联网下载镜像。 软…

Github Copilot:已免费,速回归!!!

引言 2024 年 12 月&#xff0c;GitHub 宣布推出GitHub Copilot Free&#xff0c;这一消息让不少开发者为之欢呼雀跃。毕竟&#xff0c;谁不喜欢 白嫖 呢&#xff1f; GitHub Copilot 不仅提供了 AI 辅助编程功能&#xff0c;还与自家 VS Code 无缝集成&#xff0c;简直是编程…

使用TC命令模拟弱网丢包

在网络测试和优化过程中&#xff0c;模拟弱网环境&#xff08;如高延迟、丢包、抖动等&#xff09;是非常重要的一环。tc&#xff08;Traffic Control&#xff09;是 Linux 内核中的一个强大工具&#xff0c;它可以用于流量整形、流量控制、队列管理等。通过 tc&#xff0c;我们…

概率论 期末 笔记

第一章 随机事件及其概率 利用“四大公式”求事件概率 全概率公式与贝叶斯公式 伯努利概型求概率 习题 推导 一维随机变量及其分布 离散型随机变量&#xff08;R.V&#xff09;求分布律 利用常见离散型分布求概率 连续型R.V相关计算 利用常见连续型分布的计算 均匀分布 正态…

【文档搜索引擎】搜索模块的完整实现

调用索引模块&#xff0c;来完成搜索的核心过程 主要步骤 简化版本的逻辑&#xff1a; 分词&#xff1a;针对用户输入的查询词进行分词&#xff08;用户输入的查询词&#xff0c;可能不是一个词&#xff0c;而是一句话&#xff09;触发&#xff1a;拿着每个分词结果&#xf…

如何在centos系统上挂载U盘

在CentOS上挂载NTFS格式的U盘,需要执行一系列步骤,包括识别U盘设备、安装必要的软件、创建挂载点,并最终挂载U盘。以下是在CentOS上挂载NTFS格式U盘的详细步骤: 一、准备工作 确认CentOS版本: 确保你的CentOS系统已经安装并正常运行。不同版本的CentOS在命令和工具方面可能…

pytest自动化测试数据驱动yaml/excel/csv/json

数据驱动 数据的改变从而驱动自动化测试用例的执行&#xff0c;最终引起测试结果的改变。简单说就是参数化的应用。 测试驱动在自动化测试中的应用场景&#xff1a; 测试步骤的数据驱动&#xff1b;测试数据的数据驱动&#xff1b;配置的数据驱动&#xff1b; 1、pytest结合数据…

ECharts散点图-气泡图,附视频讲解与代码下载

引言&#xff1a; ECharts散点图是一种常见的数据可视化图表类型&#xff0c;它通过在二维坐标系或其它坐标系中绘制散乱的点来展示数据之间的关系。本文将详细介绍如何使用ECharts库实现一个散点图&#xff0c;包括图表效果预览、视频讲解及代码下载&#xff0c;让你轻松掌握…

高强度螺栓等级划分

高强度螺栓的等级划分主要依据其性能等级&#xff0c;常见的等级有8.8级和10.9级。这些等级标号由两部分数字组成&#xff0c;分别表示螺栓材料的公称抗拉强度值和屈强比值。 8.8级高强度螺栓&#xff1a;表示螺栓杆的抗拉强度不小于800MPa&#xff0c;屈强比&#xff08;屈服强…

WEB UI 创建视图

1 视图名称 (点第1创建视图) 2 模型节点 可以空 3 上下文节点 4 新增节点下的属性 &#xff0c;参考结构(先建好的结构) 5 选择视图类型&#xff1a;&#xff08;表单&#xff0c; 列表&#xff09; 表单 &#xff1a;单条数据 列表 &#xff1a;多条数据&#xff08;表格…