如何完全剔除對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.pswp.cn/web/64005.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/64005.shtml
英文地址,請注明出處:http://en.pswp.cn/web/64005.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

vscode寫python,遇到問題:ModuleNotFoundError: No module named ‘pillow‘(已解決 避坑)

1 問題&#xff1a; ModuleNotFoundError: No module named pillow 2 原因&#xff1a; 原因1&#xff1a;安裝Pillow的pip命令所處的python版本與vscode調用的python解釋器版本不同。 如&#xff1a; 原因2&#xff1a;雖然用的是pillow&#xff0c;但是寫代碼的時候只能用…

Ashy的考研游記

文章目錄 摘要12.1112.2012.21 DAY1&#xff08;政治/英語&#xff09;政治英語 12.22 DAY2&#xff08;數學/專業課&#xff09;數學專業課 結束估分 摘要 在24年的12月里&#xff0c;Ashy完成了他的考研沖刺&#xff0c;順利的結束了他本年度的考研之旅。 在十二月里&#…

AIGC實踐|AI/AR助力文旅沉浸式互動體驗探索

前言&#xff1a; 本篇文章的創作靈感來源于近期熱門話題——讓文物“動起來”&#xff0c;各大博物館成為新進潮流打卡地。結合之前創作的AI文旅宣傳片良好的流量和反饋&#xff0c;外加最近比較感興趣的AR互動探索&#xff0c;想嘗試看看自己能不能把這些零碎的內容整合起來…

tcp 的三次握手與四次揮手

問1: 請你說一下tcp的三次握手一次握手兩次握手三次握手問: 為什么不四(更多)次握手? 問 2: 請說一下 tcp 的 4 次揮手一次揮手兩次揮手問題:能不能等到數據傳輸完成再返回 ack? 三次揮手四次揮手問: 為什么要等兩個最大報文存在時間? bg: tcp 是可靠的連接,如何保證 建立連…

Kubernetes(k8s)離線部署DolphinScheduler3.2.2

1.環境準備 1.1 集群規劃 本次安裝環境為&#xff1a;3臺k8s現有的postgreSql數據庫zookeeper服務 1.2 下載及介紹 DolphinScheduler-3.2.2官網&#xff1a;https://dolphinscheduler.apache.org/zh-cn/docs/3.2.2 官網安裝文檔&#xff1a;https://dolphinscheduler.apach…

C++的侵入式鏈表

非侵入式鏈表 非侵入式鏈表是一種鏈表數據結構&#xff0c;其中每個元素&#xff08;節點&#xff09;并不需要自己包含指向前后節點的指針。鏈表的結構和節點的存儲是分開的&#xff0c;鏈表容器會單獨管理這些指針。 常見的非侵入式鏈表節點可以由以下所示&#xff0c;即&a…

Flutter組合動畫學習

如何使用動畫控制器和動畫來創建一個簡單的動畫效果。具體來說&#xff0c;它通過一個 AnimationController 來控制兩個動畫&#xff0c;一個用于旋轉&#xff0c;一個用于繪制。 前置知識點學習 SingleTickerProviderStateMixin SingleTickerProviderStateMixin 是 Flutter …

在vscode的ESP-IDF中使用自定義組件

以hello-world為例&#xff0c;演示步驟和注意事項 1、新建ESP-IDF項目 選擇模板 從hello-world模板創建 2、打開項目 3、編譯結果沒錯 正在執行任務: /home/azhu/.espressif/python_env/idf5.1_py3.10_env/bin/python /home/azhu/esp/v5.1/esp-idf/tools/idf_size.py /home…

2025差旅平臺怎么選?一體化、全流程降本案例解析

差旅支出在企業中一直是一項重要但容易被忽視的成本開支&#xff0c;尤其是在項目驅動型企業中&#xff0c;因頻繁的差旅需求&#xff0c;支出規模往往持續增長。以差旅平臺分貝通簽約伙伴——某智能制造業的業務模式為例&#xff0c;該模式要求員工定期前往不同的工廠、供應商…

【linux】NFS實驗

NFS NFS服務 nfs,最早是Sun這家公司所發展出來的,它最大的功能就是可以透過網絡,讓不同的機器,不同的操作系統,進行實現文檔的共享。所以你可以簡單的將他看做是文件服務器。 實驗準備 ①先準備一個服務器端的操作系統和客戶端的操作系統(Red Hat)。 ②選擇NAT模式,…

智源研究院與安謀科技達成戰略合作,共建開源AI“芯”生態

12月25日&#xff0c;智源研究院與安謀科技&#xff08;中國&#xff09;有限公司&#xff08;以下簡稱“安謀科技”&#xff09;與正式簽署戰略合作協議&#xff0c;雙方將面向多元AI芯片領域開展算子庫優化與適配、編譯器與工具鏈支持、生態系統建設與推廣等一系列深入合作&a…

ROG NUC:強大內核激發創意,AI賦能學子科技探索

有這么一款能夠激發無限創意、助力科技探索的迷你主機&#xff0c;它以其卓越的性能和迷你的身材成為了成為了ProArt百校行活動中的明星產品&#xff0c;助力廣大學子勇敢探索未知&#xff0c;追逐屬于自己的科技夢想。它就是ROG NUC 2024&#xff01; 強大性能&#xff0c;創意…

從零玩轉CanMV-K230(8)-多線程例程

文章目錄 前言一、_thread模塊API二、使用示例創建并啟動線程停止線程_thread.exit() 總結 前言 K230上不支持threading&#xff0c;只能支持_thread&#xff0c;該模塊實現了相應 CPython 模塊的子集&#xff0c;CPython 是 Python 編程的參考實現 語言&#xff0c;也是最著名…

yii2 手動添加 phpoffice\phpexcel

1.下載地址&#xff1a;https://github.com/PHPOffice/PHPExcel 2.解壓并修改文件名為phpexcel 在yii項目的vendor目錄下創建一個文件夾命名為phpoffice 把phpexcel目錄放到phpoffic文件夾下 查看vendor\phpoffice\phpexcel目錄下會看到這些文件 3.到vendor\composer目錄下…

安卓多渠道apk配置不同簽名

一般簽名都是放在buildTypes里面&#xff1a; ... android {...defaultConfig {...}signingConfigs {release {storeFile file("myreleasekey.keystore")storePassword "password"keyAlias "MyReleaseKey"keyPassword "password"}}bu…

數據庫-用戶管理

一、創建用戶 create user xy104192..168.42.24 identified by 123456;xy104&#xff1a;用戶名 localhost&#xff1b;這個權限最高的root用戶 %&#xff1a;任務ip地址 192.168.42.24&#xff1a;登錄的IP地址 identified by ‘123456’&#xff1a;指定該用戶的密碼 mysql…

管理者需要的技能

管理者需要具備技術技能、人際技能和概念技能&#xff0c;這三種技能的內涵如下&#xff1a; 技術技能 專業知識與技術能力&#xff1a;指管理者掌握和運用某一專業領域內的知識、技術和方法的能力。這包括對特定行業的專業知識、技術流程、工具設備的熟悉和精通。例如&#x…

scala基礎學習(數據類型)-字符串

文章目錄 scala中的字符串引號單引號雙引號三引號 常用內置函數length 獲取字符串長度charAt 字符串元素訪問substring 獲取字串indexOf 獲取字串位置replace 字符串替換toLowerCase,toUpperCase 字符串大小寫轉換trim 去除首位空白符split 字符串切割以及查看startsWith,endsW…

數據庫安全-redisCouchdb

1.redis未授權訪問 默認端口:6379 1.1 Redis沙盒逃逸漏洞RCE-CVE-2022-0543 介紹&#xff1a;Redis 是一套開源的使用 ANSI C編寫、支持網絡、可基于內存亦可持久化的日志型、鍵值存儲數據庫&#xff0c;并提供多種語言的API。Redis 如果在沒有開啟認證的情況下&#xff0c;…

springboot集成websokcet+uniapp開發聊天原型驗證(一)

1. 整體思路 群組聊天功能實現思路 需要為每個群組維護一個對應的集合&#xff08;可以是 Set 等數據結構&#xff09;&#xff0c;用來存放該群組內所有在線用戶的 WebSocketSession。當有消息發送到群組時&#xff0c;遍歷該群組對應的集合&#xff0c;向其中的每個在線用戶…