大家好,我是悟空呀~

上兩篇講解 Eureka 源碼的文章過于硬核:

領導讓我研究 Eureka 源碼 | 啟動過程

領導“叕”讓我研究 Eureka 源碼:注冊過程

本篇將會給大家講解我在本地搭建的 Eureka 集群環境下,Eureka 控制臺的參數說明。

系統狀態

首先就得進入Eureka控制臺頁面,本地可以通過訪問 http://localhost:8762/ 打開。

最上面的是 System Status,就是系統狀態。

System Status

Environment: 環境,默認為?test

Data center:數據中心,默認為?default

Current time:當前的系統時間。

Uptime:已經運行了多長時間。

Lease expiration enabled:是否啟用租約過期 ,自我保護機制關閉時,該值默認是 true, 自我保護機制開啟之后為 false。

Renews threshold:期望每分鐘最少續約數。也就是 Eureka Server 期望每分鐘收到客戶端實例續約的總數。目前悟空我的機器上顯示的 3 個。

Renews (last min):最后一分鐘的續約數量(不含當前,1分鐘更新一次),Eureka Server 最后 1 分鐘收到客戶端實例續約的總數。目前悟空我的機器上顯示的 2 個。

自我保護機制

系統在三種情況下會出現紅色加粗的字體提示:

  • 1)自我保護機制配置已經配置成關閉了。

RENEWALS ARE LESSER THAN THE THRESHOLD. THE SELF PRESERVATION MODE IS TURNED OFF.THIS MAY NOT PROTECT INSTANCE EXPIRY IN CASE OF NETWORK/OTHER PROBLEMS.

關閉自我保護模式

eureka.server.enable-self-preservation?=?false
  • 2)自我保護機制開啟了

EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEYRE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE.

Eureka 的自我保護模式是非常有意義的,該模式被激活后,它不會從注冊列表中剔除因長時間沒收到心跳導致租期過期的服務,而是等待修復,直到心跳恢復正常之后,它自動退出自我保護模式。

這種模式旨在避免因網絡分區故障導致服務不可用的問題。

例如:兩個客戶端實例 C1 和 C2 的連通性是良好的,但是由于網絡故障,C2 未能及時向 Eureka 發送心跳續約,這時候 Eureka 不能簡單的將 C2 從注冊表中剔除。因為如果剔除了,C1 就無法從 Eureka 服務器中獲取 C2 注冊的服務,但是這時候 C2 服務是可用的。

  • 3)在配置上,自我保護機制關閉了,但是一分鐘內的續約數沒有達到85% , 可能發生了網絡分區,會有如下提示

THE SELF PRESERVATION MODE IS TURNED OFF.THIS MAY NOT PROTECT INSTANCE EXPIRY IN CASE OF NETWORK/OTHER PROBLEMS.

集群信息

DS Replicas 代表集群信息,當有多個 Eureka Server 組成集群時,DS Replicas 會展示集群 的其他節點。當前是單節點的。

如果配置成集群環境,則會顯示其他服務,而且在服務實例列表里面也會顯示集群節點。

![圖片]()

已注冊的實例列表

已注冊的實例列表會顯示在 Instances currently registered with Eureka 列表里面。目前顯示了一個,

名稱:SERVICEA

狀態:UP?(1) - localhost:ServiceA:8006

通用信息

total-avail-memory?: 總共可用的內存,598 MB。

environment?: 環境名稱,默認 test。

num-of-cpus?: CPU 的個數,12 核。

current-memory-usage?: 當前已經使用內存的百分比,使用了 110 MB,使用率 18%。

server-uptime?: 服務已啟動時間,6 分鐘。

registered-replicas?: 當前 Eureka Server 是往哪個 Eureka Server 進行注冊的。悟空我的本機是 eureka-server1 往 eureka-server 2 進行注冊了。

unavailable-replicas?:不可用的集群復制節點,用法沒懂。

available-replicas?:可用的相鄰集群復制節點。

服務實例信息

ipAddr:Eureka 服務端 IP。status:Eureka 服務端狀態。

最近 1000 個取消的租約

Last 1000 cancelled leases 這個列表里面會顯示最近 1000 個取消的租約。

Last 1000 newly registered leases,這個列表里面會顯示 最后1000個新注冊的租約。比如悟空我的機器上就是 Service A。

歡迎關注我的公眾號:悟空聊架構。硬核圖解架構~