javascript
Spring Cloud——Eureka——架构体系
1、概述
Eureka包括兩個端:
- Eureka Server:注冊中心服務端,用于維護和管理注冊服務列表。
- Eureka Client:注冊中心客戶端,向注冊中心注冊服務的應用都可以叫做Eureka Client(包括Eureka Server本身)。
Eureka官方wiki的架構圖。
Eureka Server:表示注冊中心集群
us-east-xxx:表示集群所在的區域
Application Service:表示服務提供者
Application Client:表示服務消費者
Eureka Client:表示Eureka客戶端
如圖所示,現在有三個區us-east-1c,us-east-1d,us-east-1e,每個區里都有一個Eureka Server集群,以及不定的Application Service和Application Client。
2、同區域的服務注冊與調用過程
us-east-1c區域代表了同區域內的服務注冊與調用過程。
3、不同區域的服務注冊與調用過程
三個區域us-east-1c,us-east-1d,us-east-1e結合在一起代表了不同區域內的服務注冊與調用過程。
us-east-1e內的Application Service啟動后,向本區內的Eureka Server注冊服務信息。并跟本區內的Eureka Server維持心跳續約。
us-east-1d內的Application Client啟動后,從本區內的Eureka Server拉取注冊列表。
4、服務續約、下線、剔除
4.1 服務續約
Application Service內的Eureka Client后臺啟動一個定時任務,跟Eureka Server保持一個心跳續約任務,每隔一段時間(默認30S)向Eureka Server發送一次renew請求,進行續約,告訴Eureka Server我還活著,防止被Eureka Server的Evict任務剔除。
4.2 服務下線
Application Service應用停止后,向Eureka Server發送一個cancel請求,告訴注冊中心我已經退出了,Eureka Server接收到之后會將其移出注冊列表,后面再有獲取注冊服務列表的時候就獲取不到了,防止消費端消費不可用的服務。
4.3 服務剔除
Eureka Server啟動后在后臺啟動一個Evict任務,對一定時間內沒有續約的服務進行剔除。
值得注意的是,注冊、續約、下線的請求默認優先選擇本區域內的Eureka Server,只有當本區內的Eureka Server都不可用,才會選擇其他區的Eureka Server。
4.4 服務通訊方式
服務間使用標準的REST方式通訊,所以Eureka服務注冊中心并不僅適用于Java平臺,其他平臺也可以納入到服務治理平臺里面。只不過其他平臺需要根據協議實現不同的客戶端。目前已知實現的有net、nodejs、python。
5、拓展
源碼解析:
https://blog.csdn.net/neosmith/article/details/53131023
總結
以上是生活随笔為你收集整理的Spring Cloud——Eureka——架构体系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 1030 error:Got
- 下一篇: Spring Cloud——Consul