Eureka故障處理大匯總

#作者:Unstopabler

文章目錄

  • 1. Eureka 服務啟動故障處理
    • 1.1 端口占用導致啟動失敗
    • 1.2 配置文件錯誤導致啟動失敗
    • 1.3 依賴沖突與類加載錯誤
  • 2. 服務注冊與發現異常
    • 2.1 服務無法注冊到 Eureka
    • 2.2 Eureka 控制臺看不到注冊的服務
    • 2.3 服務注冊后立即被剔除
  • 3. Eureka 集群同步問題
    • 3.1 集群節點無法相互發現
    • 3.2 集群數據不一致
    • 3.3 集群腦裂問題
  • 4. 服務續約與心跳異常
    • 4.1 服務頻繁下線與上線(抖動)
    • 4.2 服務續約失敗
    • 4.3 服務實例狀態不一致

1. Eureka 服務啟動故障處理

1.1 端口占用導致啟動失敗

# 檢查Eureka默認端口(8761)占用情況
netstat -tulpn | grep 8761
lsof -i :8761
# 終止占用進程
kill -9 $(lsof -t -i :8761)
# 嘗試指定其他端口啟動
java -jar eureka-server.jar --server.port=8762
# 查看啟動日志定位錯誤
java -jar eureka-server.jar --debug 2>&1 | grep -i "error\|exception"
# 檢查應用配置文件
cat src/main/resources/application.yml
# 或外部配置文件
cat /etc/eureka/application.yml

1.2 配置文件錯誤導致啟動失敗

# 檢查配置文件語法(YAML格式)
yamllint src/main/resources/application.yml
# 常見配置錯誤檢查:
# 1. 縮進錯誤(使用空格而非制表符)
# 2. 集群節點URL格式錯誤
# 3. 配置項名稱拼寫錯誤(如"eureka.client.serviceUrl.defaultZone")
# 使用簡化配置測試啟動
cat > /tmp/test-eureka.yml << 'EOF'
server:port: 8761
eureka:client:registerWithEureka: falsefetchRegistry: falseserviceUrl:defaultZone: http://localhost:8761/eureka/
EOF
java -jar eureka-server.jar --spring.config.location=file:/tmp/test-eureka.yml

1.3 依賴沖突與類加載錯誤

# 查看啟動時的類沖突日志
java -jar eureka-server.jar 2>&1 | grep -i "classdefnotfound\|noclassdeffound\|conflict"
# 檢查依賴樹
mvn dependency:tree | grep -i "eureka\|netflix\|spring-cloud"
# 排除沖突依賴
# 在pom.xml中添加:
# <dependency>
#   <groupId>org.springframework.cloud</groupId>
#   <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
#   <exclusions>
#     <exclusion>
#       <groupId>沖突的groupId</groupId>
#       <artifactId>沖突的artifactId</artifactId>
#     </exclusion>
#   </exclusions>
# </dependency>
# 清理并重新構建
mvn clean package -DskipTests
java -jar target/eureka-server.jar

2. 服務注冊與發現異常

2.1 服務無法注冊到 Eureka

# 查看客戶端服務日志
tail -f /var/log/service/application.log | grep -E "eureka\|register"
# 檢查Eureka客戶端配置
grep -A 10 "eureka.client" /etc/service/application.yml
# 測試Eureka服務器可達性
curl -i http://eureka-server:8761/eureka/apps/
# 檢查客戶端網絡連接
nc -zv eureka-server 8761
telnet eureka-server 8761
# 臨時關閉客戶端防火墻測試
systemctl stop firewalld  # 或ufw disable

2.2 Eureka 控制臺看不到注冊的服務

# 查看Eureka服務器日志
tail -f /var/log/eureka/server.log | grep -i "register\|cancel\|renew"
# 檢查服務實例狀態
curl -s http://eureka-server:8761/eureka/apps/<SERVICE-ID> | xmllint --format -
# 檢查服務實例的健康狀態
curl -s http://service-instance:port/health | jq .
# 檢查Eureka服務器的自我保護機制是否觸發
curl -s http://eureka-server:8761/eureka/status | jq .
# 若isSelfPreservationModeEnabled為true,可能導致服務不被剔除

2.3 服務注冊后立即被剔除

# 查看Eureka服務器的剔除日志
grep -i "evict\|expire\|cancel" /var/log/eureka/server.log
# 檢查服務實例的續約配置
grep -A 5 "eureka.instance.lease" /etc/service/application.yml
# 檢查服務實例的心跳狀態
curl -s http://eureka-server:8761/eureka/apps/<SERVICE-ID>/<INSTANCE-ID> | grep -i "lastDirtyTimestamp\|status"
# 調整續約配置(在客戶端)
cat >> /etc/service/application.yml << 'EOF'
eureka:instance:lease-renewal-interval-in-seconds: 30  # 心跳間隔lease-expiration-duration-in-seconds: 90  # 超時時間
EOF
systemctl restart service-instance

3. Eureka 集群同步問題

3.1 集群節點無法相互發現

# 查看集群節點狀態
curl -s http://eureka-server1:8761/eureka/peer/nodes | jq .
# 檢查集群配置
grep -A 5 "eureka.client.serviceUrl" /etc/eureka/application.yml
# 測試節點間網絡連通性
ping -c 3 eureka-server2
curl -i http://eureka-server2:8761/eureka/apps
# 檢查節點間的通信日志
tail -f /var/log/eureka/server.log | grep -i "replicate\|peer\|sync\|heartbeat"
# 重啟集群節點(按順序)
systemctl restart eureka-server2
# 等待同步完成后再重啟其他節點
systemctl restart eureka-server1

3.2 集群數據不一致

# 比較不同節點的服務列表
curl -s http://eureka-server1:8761/eureka/apps | sha256sum
curl -s http://eureka-server2:8761/eureka/apps | sha256sum
# 查看數據同步錯誤日志
grep -i "replication error\|sync failed" /var/log/eureka/server.log
# 檢查節點間的復制延遲
curl -s http://eureka-server1:8761/actuator/metrics/eureka.server.peer.replication.delay | jq .
# 手動觸發數據同步
curl -X POST http://eureka-server1:8761/eureka/peer/sync
# 清理節點緩存并重啟
rm -rf /tmp/eureka/*
systemctl restart eureka-server

3.3 集群腦裂問題

# 檢查各節點的集群視圖
for node in eureka-server1 eureka-server2 eureka-server3; doecho "Node $node:"curl -s http://$node:8761/eureka/peer/nodes | jq '.nodes | length'
done
# 查看網絡分區日志
grep -i "network partition\|isolation" /var/log/eureka/server.log
# 檢查節點間的網絡連接
for node in eureka-server2 eureka-server3; donc -zv eureka-server1 8761nc -zv eureka-server1 8080  # 應用端口
done
# 隔離問題節點
# 在健康節點上移除問題節點
curl -X DELETE http://eureka-server1:8761/eureka/peer/eureka-server3:8761
# 修復網絡后重新加入集群
# 在問題節點修改配置指向健康節點
sed -i 's/defaultZone: .*/defaultZone: http:\/\/eureka-server1:8761\/eureka\/,http:\/\/eureka-server2:8761\/eureka\//' /etc/eureka/application.yml
systemctl restart eureka-server3

4. 服務續約與心跳異常

4.1 服務頻繁下線與上線(抖動)

# 查看服務實例的心跳日志
tail -f /var/log/service/application.log | grep -i "heartbeat\|renew\|eureka"
# 檢查服務實例的資源使用情況
top -p $(pgrep -f service-instance)
free -h
# 檢查網絡穩定性
mtr eureka-server --report
# 調整Eureka服務器的超時配置
cat >> /etc/eureka/application.yml << 'EOF'
eureka:server:eviction-interval-timer-in-ms: 60000  # 驅逐間隔(1分鐘)enable-self-preservation: true
EOF
systemctl restart eureka-server
# 調整客戶端的心跳配置
cat >> /etc/service/application.yml << 'EOF'
eureka:instance:lease-renewal-interval-in-seconds: 10lease-expiration-duration-in-seconds: 30
EOF
systemctl restart service-instance

4.2 服務續約失敗

# 查看續約失敗日志
grep -i "renewal failed\|rejected\|404" /var/log/service/application.log
# 檢查Eureka服務器響應狀態
curl -i http://eureka-server:8761/eureka/apps/<SERVICE-ID>/<INSTANCE-ID>/renew
# 驗證服務實例的instance-id配置
grep -i "eureka.instance.instance-id" /etc/service/application.yml
# 檢查服務實例的網絡連接
curl -i http://eureka-server:8761/eureka/
# 重新注冊服務
curl -X POST http://service-instance:port/actuator/eureka/register

4.3 服務實例狀態不一致

# 查看服務實例在Eureka中的狀態
curl -s http://eureka-server:8761/eureka/apps/<SERVICE-ID> | xmllint --format - | grep -i "status"
# 查看服務實例的實際狀態
curl -s http://service-instance:port/health | jq .status
# 檢查健康檢查配置
grep -A 10 "healthcheck" /etc/service/application.yml
# 手動更新服務狀態
curl -X POST http://service-instance:port/actuator/health
# 強制服務實例重新注冊
curl -X POST http://service-instance:port/actuator/eureka/deregister
curl -X POST http://service-instance:port/actuator/eureka/register

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/93579.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/93579.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/93579.shtml

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

相關文章

基于Transformer的機器翻譯——模型篇

1.模型結構 本案例整體采用transformer論文中提出的結構&#xff0c;部分設置做了調整。transformer網絡結構介紹可參考博客——入門級別的Transformer模型介紹&#xff0c;這里著重介紹其代碼實現。 模型的整體結構&#xff0c;包括詞嵌入層&#xff0c;位置編碼&#xff0c;…

上位機TCP/IP通信協議層常見問題匯總

以太網 TCP 通信是上位機開發中常用的通信方式&#xff0c;西門子 S7 通信、三菱 MC 通信以及 MQTT、OPC UA、Modbus TCP 等都是其典型應用。為幫助大家更好地理解 TCP 通信&#xff0c;我整理了一套常見問題匯總。一、OSI參考模型與TCP/IP參考模型基于TCP/IP的參考模型將協議分…

搭建ktg-mes

項目地址 該安裝事項&#xff0c;基于當前最新版 2025年8月16日 之前的版本 下載地址&#xff1a; 后端JAVA 前端VUE 后端安裝&#xff1a; 還原數據表 路徑&#xff1a;根目錄/sql/ry_20210908.sql、根目錄/sql/quartz.sql、根目錄/doc/實施文檔/ktgmes-202505180846.sql.g…

uniapp純前端繪制商品分享圖

效果如圖// useMpCustomShareImage.ts interface MpCustomShareImageData {canvasId: stringprice: stringlinePrice: stringgoodsSpecFirmName: stringimage: string }const CANVAS_WIDTH 500 const CANVAS_HEIGHT 400 const BG_IMAGE https://public-scjuchuang.oss-cn-ch…

醋酸鑭:看不見的科技助力

雖然我們每天都在使用各種科技產品&#xff0c;但有些關鍵的化學物質卻鮮為人知。醋酸鑭&#xff0c;就是這樣一種默默為科技進步貢獻力量的“幕后英雄”。它不僅是稀土元素鑭的一種化合物&#xff0c;還在許多高科技領域中發揮著重要作用。今天&#xff0c;讓我們一起來了解這…

蒼穹外賣日記

day 1 windows系統啟動nginx報錯: The system cannot find the path specified 在啟動nginx的時候報錯&#xff1a; /temp/client_body_temp" failed (3: The system cannot find the path specified) 解決辦法&#xff1a; 1.檢查nginx的目錄是否存在中文 &#xff0c;路…

樓宇自控系統賦能建筑全維度管理,實現環境、安全與能耗全面監管

隨著城市化進程加速和綠色建筑理念普及&#xff0c;現代樓宇管理正經歷從粗放式運營向精細化管控的轉型。樓宇自控系統&#xff08;BAS&#xff09;作為建筑智能化的核心載體&#xff0c;通過物聯網、大數據和人工智能技術的深度融合&#xff0c;正在重構建筑管理的全維度框架&…

【HarmonyOS】Window11家庭中文版開啟鴻蒙模擬器失敗提示未開啟Hyoer-V

【HarmonyOS】Window11家庭中文版開啟鴻蒙模擬器失敗提示未開啟Hyoer-V一、問題背景 當鴻蒙模擬器啟動時&#xff0c;提示如下圖所示&#xff1a;因為Hyper-V 僅在 Windows 11 專業版、企業版和教育版中作為預裝功能提供&#xff0c;而家庭版&#xff08;包括中文版&#xff09…

vscode遠程服務器出現一直卡在正在打開遠程和連接超時解決辦法

項目場景&#xff1a; 使用ssh命令或者各種軟件進行遠程服務器之后&#xff0c;結果等到幾分鐘之后自動斷開連接問題解決。vscode遠程服務器一直卡在正在打開遠程狀態問題解決。問題描述 1.連接超時 2.vscode遠程一直卡在正在打開遠程...原因分析&#xff1a;需要修改設置超時斷…

Maven下載和配置-IDEA使用

目錄 一 MAVEN 二 三個倉庫 1. 本地倉庫&#xff08;Local Repository&#xff09; 2. 私有倉庫&#xff08;Private Repository&#xff0c;公司內部倉庫&#xff09; 3. 遠程倉庫&#xff08;Remote Repository&#xff09; 依賴查找流程&#xff08;優先級&#xff09…

Dify實戰應用指南(上傳需求稿生成測試用例)

一、Dify平臺簡介 Dify是一款開源的大語言模型&#xff08;LLM&#xff09;應用開發平臺&#xff0c;融合了“Define&#xff08;定義&#xff09; Modify&#xff08;修改&#xff09;”的設計理念&#xff0c;通過低代碼/無代碼的可視化界面降低技術門檻。其核心價值在于幫助…

學習日志35 python

1 Python 列表切片一、切片完整語法列表切片的基本格式&#xff1a; 列表[start:end:step]start&#xff1a;起始索引&#xff08;包含該位置元素&#xff0c;可省略&#xff09;end&#xff1a;結束索引&#xff08;不包含該位置元素&#xff0c;可省略&#xff09;step&#…

Linux -- 文件【下】

目錄 一、EXT2文件系統 1、宏觀認識 2、塊組內部構成 2.1 Data Block 2.2 i節點表(Inode Table) 2.3 塊位圖&#xff08;Block Bitmap&#xff09; 2.4 inode位圖&#xff08;Inode Bitmap&#xff09; 2.5 GDT&#xff08;Group Descriptor Table&#xff09; 2.6 超…

谷歌手機刷機和面具ROOT保姆級別教程

#比較常用的谷歌輸入root面具教程,逆向工程師必修課程# 所需工具與材料清單 真機設備 推薦使用 Google Pixel 4 或其他兼容設備&#xff0c;確保硬件支持刷機操作。 ADB 環境配置 通過安裝 Android Studio 自動配置 ADB 和 Fastboot 工具。安裝完成后&#xff0c;需在系統環境…

平衡二叉搜索樹 - 紅黑樹詳解

文章目錄一、紅黑樹概念引申問題二、紅黑樹操作一、紅黑樹概念 紅黑樹是一棵二叉搜索樹&#xff0c;它在每個節點上增加了一個存儲位用來表示節點顏色(紅色或者黑色)&#xff0c;紅黑樹通過約束顏色&#xff0c;可以保證最長路徑不超過最短路徑的兩倍&#xff0c;因而近似平衡…

從0開始跟小甲魚C語言視頻使用linux一步步學習C語言(持續更新)8.14

第十六天 第五十二&#xff0c;五十三&#xff0c;五十四&#xff0c;五十五和五十六集 第五十二集 文件包含 一個include命令只能指定一個被包含文件 文件允許嵌套&#xff0c;就是一個被包含的文件可以包含另一個文件。 文件名可以用尖括號或者雙引號括起來 但是兩種的查找方…

B+樹索引分析:單表最大存儲記錄數

在現代數據庫設計中&#xff0c;隨著數據量的增加&#xff0c;如何有效地管理和優化數據庫成為了一個關鍵問題。根據阿里巴巴開發手冊的標準&#xff0c;當一張表預計在三年內的數據量超過500萬條或者2GB時&#xff0c;就應該考慮實施分庫分表策略 Mysql B樹索引介紹 及 頁內儲…

三、memblock 內存分配器

兩個問題&#xff1a; 1、系統是怎么知道物理內存的&#xff1f;linux內存管理學習&#xff08;1&#xff09;&#xff1a;物理內存探測 2、在內存管理真正初始化之前&#xff0c;內核的代碼執行需要分配內存該怎么處理&#xff1f; 在Linux內核啟動初期&#xff0c;完整的內存…

Python 桌面應用形態后臺管理系統的技術選型與方案報告

下面是一份面向“Python 桌面應用形態的后臺管理系統”的技術選型與方案報告。我把假設前提→總體架構→客戶端技術選型→服務端與數據層→基礎設施與安全→交付與運維→質量保障→里程碑計劃→風險與對策→最小可行棧逐層給出。 一、前置假設 & 非功能目標 業務假設 典型…

Winsows系統去除右鍵文件顯示的快捷列表

前言&#xff1a;今天重做了電腦系統&#xff0c;安裝的是純凈版的系統。然后手動指定D盤安裝了下列軟件。&#xff08;QQ&#xff0c;迅雷&#xff0c;百度網盤&#xff0c;搜狗輸入法&#xff0c;驅動精靈&#xff09;然后我右鍵點擊桌面的軟件快捷方式&#xff0c;出現了一排…