微服務之服務治理Spring Cloud Eureka
阿新 • • 發佈:2019-01-29
- 概述:Spring Cloud Eureka 是Spring Cloud Netflix 微服務套件中的一個部分,它是基於Netflix Eureka做了二次封裝,主要負責完成微服務架構中的服務治理功能。
- 服務治理是微服務架構中最為核心和基礎的模組,主要用來實現各個微服務例項的自動化註冊與發現。
- 服務註冊
在服務治理框架中,通常會構建一個註冊中心,每個服務單元向註冊中心登記自己提供的服務,將主機與埠號、版本號、通訊協議等一些附加資訊告知註冊中心,註冊中心按服務名分類組織服務清單。
eg: 我們提供服務A,分別執行在172.1.1.1:8080 和172.1.1.2:8080 位置上
服務B,分別執行在172.1.1.3:9090/172.1.1.2:9090/172.1.1.1:9090 位置上,那麼服務註冊中心就會維護如下的一張服務清單
服務名 | 位置 |
---|---|
服務A | 172.1.1.1:8080 /172.1.1.2:8080 |
服務B | 172.1.1.3:9090/172.1.1.2:9090/172.1.1.1:9090 |
如果有新的服務加入進來,會在服務清單中自動新增並維護;
如果有服務宕機或其他原因不可用,註冊中心會通過心跳檢測自動剔除不可用的服務。
- 服務發現
##由於在服務治理框架下執行,服務間的呼叫不再通過指定具體的例項地址來實現,而是通過向服務名發起請求呼叫實現。所以,服務呼叫方在呼叫服務提供方介面的時候,並不知道具體的服務例項位置。因此,服務呼叫方需要向服務註冊中心諮詢服務,註冊中心會根據呼叫方需要的服務返回一個服務清單給服務呼叫方。
##eg: 服務C需要呼叫服務A,服務C就會向註冊中心發起諮詢服務請求,服務註冊中心就會將服務A的位置清單返回給服務C。服務C要發起呼叫的時候,就會從位置清單中以某種輪詢策略取出一個位置來進行服務呼叫,這涉及到客戶端負載均衡