Eureka服務註冊中心

2021-09-23 05:33:36 字數 2621 閱讀 1425

1.適用場景有侷限:如果服務提供者的網路位址(ip和埠)發生變化,將會影響服務消費者。

2.無法動態伸縮:每個微服務一般都會部署多個例項,從而實現實現容災和負載均衡,微服務系統需要具備自動伸縮的能力。

如何解決上述方案:

1)需要乙個強大的服務發現機制,服務消費者使用這種機制獲取服務提供者的網路資訊,及時服務提供者發生變化,服務消費者也無需修改配置檔案。

2)服務提供者、消費者、發現元件等三者關係:

a.微服務啟動件自己的網路位址等資訊註冊到服務發現元件中,服務發現元件會儲存微服務的ip位址、埠等資訊。

b.服務消費者可以從服務發現元件查詢服務提供者的網路位址,並使用該位址呼叫服務提供者的介面。

c.各位服務與服務元件使用統一的心跳機制,如果服務發現元件長時間無法與某微服務例項通訊,就會被登出。

d.微服務網路位址發生變更時,會重新註冊到服務發現元件,避免人工修改提供者的網路位址。

3.服務發現元件核心功能:

1)服務登錄檔:記錄微服務資訊的服務的名稱、ip、埠等,服務登錄檔查詢api和管理api。

2)服務註冊與服務發現:服務註冊是微服務啟動時,件自己的資訊註冊到服務發現元件上的過程。服務發現是指查詢可用微服務列表及其網路位址的機制。

3)服務檢查:服務發現元件使用過一定機制定時檢測已註冊的服務。

4.eureka框架結構:

eureka的框架分為2 個元件:eureka server和eureka client,具體作用如下:

1)eureka server提供服務發現的能力,微服務啟動的時候,先eureka server註冊自己的資訊(ip、埠、服務名稱),eureka server儲存這些資訊。

2)eureka client是乙個客戶端,使用者簡化與server的互動。

3)eureka server在90m未收到微服務例項的心跳,server會銷毀該例項。

4)eureka client會快取服務登錄檔中的資訊,有一定的優勢:減少查詢server的次數,server節點都宕機,服務消費依賴快取資訊也可以完成服務的正常呼叫。

5.eureka 配置:

6.eureka client註冊配置:

eureka.instance.prefer-ip-address = true 表示將自己的ip註冊到eureka server。如果不配置會將作業系統的hostname到eureka server.

7.eureka服務註冊中心包含:服務註冊、服務發現,服務在集群中允許分片故障期間繼續提供服務的發現和註冊,當故障非農i安恢復執行時,集群中的其他分片會把他們的狀態再次同步回來。不同區域的服務註冊中心通過非同步模式相互複製各自的狀態,每個服務在不同的時間點,服務的狀態有細微的差別。

8.eureka客戶端想註冊中心註冊自身,提供心跳來並週期性更新服務租約,查詢服務端狀態,並快取在本地,週期性重新整理服務狀態。

9.eureka server在90s未收到服務例項的心跳,就會銷毀該例項。

如果是短時的分割槽故障,直接銷毀例項就有問題,因此eureka server採用自我保護模式。

10.eureka服務治理基礎框架3個核心要素:

1)服務註冊中心:提供服務註冊與發現的功能

2)服務提供者:將自己服務註冊到服務註冊中心

3)服務消費者:消費者應用從服務註冊中心獲取服務列表,為消費者提供服務。

架構圖如下:

服務註冊:rest方式將資料傳送給註冊中心,配置:eureka.client.register-with-eureka=true;預設 false

服務續約,服務提供者通過http向註冊中心傳送心跳,讓服務註冊中心知道自己還活著。通過配置如下引數設定續約資訊:

eureka.instance.lease-renewal-interval-in-seconds=30 續約任務的呼叫間隔時間,預設30s

eureka.instance.lease-expiration-duration-in--seconds=90 服務失效的時間,預設90s

服務消費:

獲取服務:eureka.client.fetch-register=true;註冊中心的職責就是維護服務例項,並檢索服務。

eureka.client.register-fetch-interval-seconds = 30;服務快取清單的更新時間為30s
服務呼叫:服務消費在獲取服務列表後,通過服務名可以獲取具體的服務例項名和該例項的元資料信 息。通過這些資訊,可以通過ribbon採用輪詢的方式進行呼叫,實現客戶端的負載均衡。eureka包含region和zone,乙個region包含多個zone,每個服務客戶端需要被註冊到乙個zone中,每個客戶端對應乙個region和乙個zone。

服務註冊中心:

1)失效剔除:eureka server在啟動時,建立乙個定時任務,會60s將清單中超過90s沒有續約的服務剔除。

2)自我保護:心跳失敗比例在15分鐘內,低於85%.

eureka 服務註冊中心

作為服務註冊中心,eureka比zookeeper區別 著名的cap理論指出,乙個分布式系統不可能同時滿足c 一致性 a 可用性 和p 分割槽容錯性 由於分割槽容錯性在是分布式系統中必須要保證的,因此我們只能在a和c之間進行權衡。在此zookeeper保證的是cp,而eureka則是ap 1.zoo...

eureka搭建服務註冊中心

org.springframework.boot spring boot starter parent 2.0.6.release utf 8 utf 8 1.8finchley.sr1 org.springframework.cloud spring cloud starter netflix e...

微服務 Eureka註冊中心

我們來解決微服務的第一問題,服務的管理。服務中心對外提供服務,需要對外暴露自己的位址。而consumer 呼叫者 需要記錄服務提供者的位址。將來位址出現變更,還需要及時更新。這在服務較少的時候並不覺得有什麼,但是在現在日益複雜的網際網路環境,乙個專案肯定會拆分出十幾,甚至數十個微服務。此時如果還人為...