Eureka服務註冊與發現

2022-08-18 19:27:10 字數 2613 閱讀 1521

1、服務治理

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

2、服務註冊與發現

​ eureka 採用了 cs 的設計架構,eureka server 作為服務註冊功能的伺服器,它是服務註冊中心。而系統中的其他微服務,使用 eureka 的客戶端連線到 eureka server 並維持心跳連線。這樣系統的維護人員就可以通過 erueka server 來監控系統中各個微服務是否正常執行。

​ 在服務註冊與發現中,有乙個註冊中心。當伺服器啟動的時候,會把當前自己伺服器的資訊(如服務位址、通訊位址等)以別名方式註冊到註冊中心上。另一方(消費者、服務提供者)以該別名的方式去註冊中心上獲取到實際的服務通訊位址,然後在實現本地rpc呼叫。rpc遠端呼叫框架核心設計思想:在於註冊中心,因為使用註冊中心管理每個服務與服務之間的乙個依賴關係(服務治理概念)。在任何rpc遠端框架中,都會有乙個註冊中心(存放服務位址相關資訊)。eureka 系統架構如下:

執行說明:

​ 1)、先啟動 eureka 註冊中心;

​ 2)、啟動服務提供者 ;

​ 3)、服務提供者啟動後把自己的資訊(如服務位址)以別名方式注入 eureka;

​ 4)、消費者服務在需要呼叫介面時使用服務別名去註冊中心獲取實際的rpc呼叫位址;

​ 5)、消費者獲得呼叫位址後,底層實際是使用的 httpclient 技術實現遠端呼叫;

​ 6)、消費者獲得服務位址後會快取在本地 jvm 記憶體中,預設每間隔30秒更新一次服務呼叫位址。

3、元件:eureka server 和 eureka client

1、eureka server 搭建

2、eureka client 配置

1、集群概念

​ 單機版的 eureka 只有乙個服務,如果這個服務掛掉了那整個系統就掛了。eureka 集群就是使用多個 eureka server服務之間相互註冊,以實現高可用的目的。

2、eureka server 搭建步驟

3、將服務提供者與消費者註冊

eureka:

client:

#是否從eureka server 抓取已有的註冊資訊,預設為true。單節點無所謂,集群必須設定為true才能配合ribbon使用負載均衡

fetch-registry: true

#表示是否將自己註冊進入eureka server ,預設為true

register-with-eureka: true

service-url:

defaultzone:

4、服務提供者集群處理

所以在消費者端配置請求的位址為服務註冊的別名如public static final string payment_url = "http://cloud-payment-service";,然後在配置類中新增註解 @loadbalanced 開啟負載均衡功能(預設使用輪詢)。

1、配置服務名稱,不顯示主機名稱以及ip位址提示

instance:

#配置服務名稱,不顯示主機名稱

instance-id: payment8002

#ip位址提示

prefer-ip-address: true

顯示效果如下:

1、首頁出現如下圖所示文字,eureka便進入到了自我保護模式:

​ 保護模式主要用於一組客戶端和 eureka server 之間存在網路分割槽場景下的保護。一旦進入保護模式 ,eureka server 將會嘗試保護其服務登錄檔中的資訊,不再刪除服務登錄檔中的資料,也就是不會登出任何微服務,即某時刻某乙個微服務不可用了,eureka 不會立刻清理,依舊會對該微服務的資訊進行儲存。

2、原因

​ 為了保證 eureka client 與 eureka server 網路不通的情況下, eureka server 不會立刻將 eureka client 服務剔除。

3、描述

​ 預設情況下,如果 eureka server 在一定時間內沒有接收到某個微服務例項的心跳, eureka server 將會登出該例項(預設時間為90秒)。但是當網路分割槽故障發生時,微服務與 eureka server 之間無法正常通訊,以上行為可能變得非常危險——因為微服務本身是健康的,此時不應該登出這個微服務。eureka 通過"自我保護模式"來解決這個問題——當 eureka server 節點在短時間內丟失過多客戶端時(可能發生了網路分割槽故障),那麼這個節點就會進入自我保護模式。

4、禁止自我保護

server:

#關閉自我保護模式,保證不可用服務可以被及時剔除

enable-self-preservation: false

Eureka服務註冊與發現

註冊eureka的服務非常的簡單,只需要引入spring cloud starter netflix eureka client的jar包即可。org.springframework.cloud spring cloud starter netflix eureka client server po...

EureKa 服務註冊與發現

eureka資訊共享乙份登錄檔,至少乙個伺服器存在就可正常執行 三點注意 1.eureka server 支援跨機房的高可用,不同區域伺服器可以相互註冊,同一區域伺服器也可以兩兩註冊來達到高可用,至少乙個伺服器存在就可正常執行。2.eureka server 資料一致性級別是最終一致性,他相比強一致...

Eureka服務註冊與發現

eureka基礎知識 1.什麼是服務治理?springcloud 封裝了netflix 公司開發的eureka模組來實現服務治理。在傳統的rpc 遠端呼叫框架中,管理每個服務與服務之間依賴關係比較複雜,管理比較複雜,所以需要使用服務治理,管理服務與服務之間依賴關係,可以實現服務呼叫 負載均衡 容錯等...