Eureka註冊中心

2021-10-07 16:09:21 字數 1993 閱讀 8261

spring cloud封裝了netlix 公司開發的eureka模組來實現服務治理在傳統的rpc遠端呼叫框架中,管理每個服務與服務之間依賴關係比較複雜,管理比較雜,所以需要使用服務治理,管理服務於服務之間依賴關係,可以實現服務呼叫負載均衡、容錯等,實現服務發現與註冊。

eureka採用了cs的設計架構,eureka server作為服務註冊功能的伺服器它是服務註冊中心。而系統中的其他微服務,使用eureka的客戶端連線到eureka server並維持心跳連線。這樣系統的維護人員就可以通過eureka server來監控系統中各個微服務是否正常執行。在服務註冊與發現中,有乙個註冊中心。當伺服器啟動的時候,會把當前自己伺服器的資訊比如服務位址通訊位址等以別名方式註冊到註冊中心上。另一方(消費者|服務提供者),以該別名的方式去註冊中心上獲取到實際的服務通訊位址,然後再實現本地rpc呼叫rpc遠端呼叫框架核心設計思想:在於註冊中心,因為使用註冊中心管理每個服務與服務之間的乙個依賴關係(服務治理概念)。在任何rpc遠端框架中,都會有乙個註冊中心(存放服務位址相關資訊(介面位址)。

服務呼叫方通過eureka server 獲取服務列表,消費服務。

eureka滿足了ap,服務高可用和分割槽容錯性

eureka各個節點都是平等的,幾個節點掛掉不會影響正常節點的工作,剩餘的節點依然可以提供註冊和查詢服務。而eureka的客戶端在向某個eureka註冊或如果發現連線失敗,則會自動切換至其它節點,只要有一台eureka還在,就能保證註冊服務可用(保證可用性),只不過查到的資訊可能不是最新的(不保證強一致性)。

register(服務註冊):把自己的ip和埠註冊給eureka。

renew(服務續約):傳送心跳包,每30秒傳送一次。告訴eureka自己還著。

cancel(服務下線):當provider關閉時會向eureka傳送訊息,把自己從服務列表中刪除。防止consumer呼叫到不存在的服務。

get registry(獲取服務註冊列表):獲取其他服務列表。

replicate(集群中資料同步):eureka集群中的資料複製與同步。

make remote call(遠端呼叫):完成服務的遠端呼叫。

1、自我保護的條件

一般情況下,微服務在eureka上註冊後,會每30秒傳送心跳包,eureka通過心跳來判斷服務時候健康,同時會定期刪除超過90秒沒有傳送心跳服務

2、有兩種情況會導致eureka server收不到微服務的心跳

a.是微服務自身的原因

b.是微服務與eureka之間的網路故障

通常(微服務的自身的故障關閉)只會導致個別服務出現故障,一般不會出現大面積故障,而(網路故障)通常會導致eureka server在短時間內無法收到大批心跳。

考慮到這個區別,eureka設定了乙個閥值,當判斷掛掉的服務的數量超過閥值時,eureka server認為很大程度上出現了網路故障,將不再刪除心跳過期的服務。

3、那麼這個閥值是多少呢?

15分鐘之內是否低於85%;

eureka server在執行期間,會統計心跳失敗的比例在15分鐘內是否低於85%。低於85%則進入保護模式,直到收到心跳比率大於85%才退出。

這種演算法叫做eureka server的自我保護模式。

Eureka 註冊中心

角色 1 服務提供者 2 服務消費者 3 服務註冊中心 a.高ha 支援資料持久化和服務集群 b.資料一致性問題,集群中的所有客戶應該看到同乙份資料不能出現讀寫資料不一致 c.資料變更主動推送,當註冊中心的資料發生變更時要及時通知客戶端 關鍵性功能設計 1 服務提供者在啟動時,向註冊中心註冊自己提供...

Eureka註冊中心

一 服務端配置 2 步 2 匯入依賴 org.springframework.cloud spring cloud starter eureka server 1.3.4.release 3 啟動類中加入註解 enableeurekaserver 4 yml檔案配置 此處配置的是多eureka版,三...

Eureka註冊中心

1.導包 org.springframework.cloudgroupid spring cloud starter netflix eureka serverartifactid dependency dependencies 2.主配置類 enableeurekaserver 開啟服務 publ...