eureka架構以及集群

2021-10-07 22:51:55 字數 2083 閱讀 6620

eureka架構三大核心:

eureka配置

#eureka埠號

server:

port: $

#名稱spring:

name: eureka-server

#eureka

eureka:

client:

service-url:

#eureka 服務位址,如果是集群的話,需要制定其他集群eureka位址

defaultzone: $

#或者# defaultzone:

# 不註冊自己

#register-with-eureka: false

# 不拉取服務

#fetch-registry: false

在服務端配置

#eureka

eureka:

instance:

ip-address: 127.0.0.1 #ip位址

prefer-ip-address: true #更傾向於使用ip

lease-expiration-duration-in-seconds: 90 #服務續約(renew)的間隔,預設為30秒

lease-renewal-interval-in-seconds: 30 #服務失效時間,預設值90秒

預設情況下每隔30秒服務會向註冊中心傳送一次心跳,證明自己還活著。如果超過90秒沒有傳送心跳,

eurekaserver就會認為該服務宕機,會定時(eureka.server.eviction-interval-timer-in-ms設定的時間)從服務列表

中移除,這兩個值在生產環境不要修改,一般預設即可。

當服務消費者啟動時,會檢測 eureka.client.fetch-registry=true 引數的值,如果為true,則會從eureka

server服務的列表拉取唯讀備份,然後快取在本地。並且 每隔30秒 會重新拉取並更新資料。可以在 consumer-demo

在消費者配置

eureka:

client:

registry-fetch-interval-seconds: 30 #每隔30秒 會重新拉取並更新資料,獲取服務列表

服務下線

當服務進行正常關閉操作時,它會觸發乙個服務下線的rest請求給eureka server,告訴服務註冊中心:「我要下線

了」。服務中心接受到請求之後,將該服務置為下線狀態.

2. 失效剔除

有時我們的服務可能由於記憶體溢位或網路故障等原因使得服務不能正常的工作,而服務註冊中心並未收到「服務下

線」的請求。相對於服務提供者的「服務續約」操作,服務註冊中心在啟動時會建立乙個定時任務,預設每隔一段時間

(預設為60秒)將當前清單中超時(預設為90秒)沒有續約的服務剔除,這個操作被稱為失效剔除。

可以通過 eureka.server.eviction-interval-timer-in-ms 引數對其進行修改,單位是毫秒。

在eureka 中配置

#eureka

eureka:

server:

# 服務失效剔除時間間隔,預設60秒

eviction-interval-timer-in-ms: 60000

自我保護

這是觸發了eureka的自我保護機制。當服務未按時進行心跳續約時,eureka會統計服務例項最近15分鐘心跳續約的

比例是否低於了85%。在生產環境下,因為網路延遲等原因,心跳失敗例項的比例很有可能超標,但是此時就把服務

剔除列表並不妥當,因為服務可能沒有宕機。eureka在這段時間內不會剔除任何服務例項,直到網路恢復正常。生

產環境下這很有效,保證了大多數服務依然可用,不過也有可能獲取到失敗的服務例項,因此服務呼叫者必須做好服

務的失敗容錯.

在eureka中配置

eureka:

server:

enable-self-preservation: false # 關閉自我保護模式(預設為開啟)

Eureka集群配置

enable self preservation false 測試時關閉自我保護機制,保證不可用服務及時踢出 eviction interval timer in ms 5000 啟用主動失效,並且每次主動失效檢測間隔為5s response cache update inverval ms 300...

Eureka集群配置

如果是單節點的註冊中心,是無法保證系統穩定性的,當然現在專案部署架構不可能是單節點的。集群節點的部署思路 通過執行多個例項並請求他們相互註冊,來完成註冊中心的高可用性 結伴註冊 1 新增依賴 org.springframework.cloud spring cloud starter eureka ...

Eureka集群配置

eureka的集群配置。eureka集群的執行機制是 相互註冊,相互守望 主要是為了實現高可用。防止出現單點故障。假如有三個eureka服務註冊中心。7001,7002,7003。那麼7001,7002,7003需要相互註冊。即7001 7002 7001 7003。7002 7001 7002 7...