服務註冊與發現【Eureka】- Eureka簡介

糖油包子發表於2020-07-18

什麼是服務治理

  SpringCloud 封裝了 Netflix 公司開發的 Eureka 模組來 實現服務治理。

  在傳統的rpc遠端呼叫框架中,管理每個服務與服務之間依賴關係比較複雜,管理比較複雜,所以需要使用服務治理,管理服務與服務之間的依賴關係,可以實現服務呼叫、負載均衡、容錯 等,實現服務發現與註冊。

什麼是服務註冊與發現

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

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

  Eureka 系統架構:

 

 Eureka 的兩個元件

  Eureka Server 和 Eureka Client

Eureka Server 提供服務註冊服務

  各個微服務節點通過配置啟動後,會在EurekaServer中進行註冊,這樣EurekaServer中的服務登錄檔中將會儲存書友可用服務節點的資訊,服務節點的資訊可以在介面中直觀看到。

Eureka Client 通過註冊中心進行訪問

  是一個Java客戶端,用於簡化Eureka Server的互動,客戶端同時也具備一個內建的、使用輪詢(round-robin)負載演算法的負載均衡器。在應用啟動後,會將向EurekaServer 傳送心跳(預設週期是30秒)。如果Eureka Server在多個心跳週期內沒有接收到某個節點的心跳,Eureka Server會從服務登錄檔中把這個服務節點移除(預設90秒)

 

服務註冊中心就相當於一棟寫字樓的物業公司,而各個服務提供者就相當於是在這棟寫字樓中的公司,這些公司提供不同的服務(房產中介服務、軟體開發服務、家政服務...),服務消費者就相當於是找這些公司提供服務的人。首先需要有一個物業公司,這些其他公司就通過定期給物業公司交房租、物業費的方式(心跳),駐紮在這棟寫字樓裡面。物業公司那裡就有在這棟樓裡面駐紮的所有公司的名單。然後如果你想要買房子,就可以去物業中心問,這裡找誰可以買房子,物業中心就把他們這棟樓中能提供房產中介服務的公司推薦給你,中介公司就可以為你服務了。

 

相關文章