天天看點

SpringCloud源碼分析 (Eureka-Client-架構) (一)

注冊中心架構圖

SpringCloud源碼分析 (Eureka-Client-架構) (一)

文章目錄

  • ​​1.Eureka的異地多活解析​​
  • ​​2.Reign和Zone概念解析​​
  • ​​3.Eureka中的Region與Zone配置​​

1.Eureka的異地多活解析

異地多活一般是指不同城市建立的獨立資料中心

活相對的是主備關系中的熱備而言的, 熱備是指備份機房随時全量備份着主機房中的資料, 但是平時不支撐業務, 對外不提供服務, 隻要在主機房出現故障的時候會切換到備份機房, 就是說平時來說, 隻有主機房是活的。

多活是指這些機房屬于主從模式, 即這些機房都對外提供服務, 互相備份。

2.Reign和Zone概念解析

SpringCloud源碼分析 (Eureka-Client-架構) (一)

Eureka中具有Region與Availability Zone(簡稱AZ)概念。

Region: 為了友善不同地理區域中使用者的使用,大型雲服務提供商一般會根據使用者需求量在不同的城市、省份、國家或洲建立不同的大型雲計算機房。這些不同區域機房間一般是不能“内網連通”的。

同一Region機房是如何實作同域容災的

為了增強容災能力,在一個Region中又設定了不同的Availability Zone。這些AZ間實作了内網連通,且使用者可以根據自己所在的具體位置自動選擇同域中的不同AZ。當使用者所要通路的AZ出現問題後,系統會自動切換到其它可用的AZ。

像Eureka系統架構圖中的us-east-1c、us-east-1d、us-east-1e就是us-east-1這個Region中的c、d、e三個AZ。

3.Eureka中的Region與Zone配置

SpringCloud源碼分析 (Eureka-Client-架構) (一)

假設某公司的伺服器有Beijing、Shanghai等多個Region。Beijing這個Region中存在兩個AZ,分别是

bj-1與bj-2,每個AZ中有三台Eureka Server。

h-1與h-2兩台主機提供的都是相同的Service服務,根據地理位置的不同,這兩台主機分别注冊到了距

離自己最近的不同AZ的Eureka Server。

Server AZ bj-1配置

SpringCloud源碼分析 (Eureka-Client-架構) (一)

Server AZ bj-2配置

SpringCloud源碼分析 (Eureka-Client-架構) (一)

Zuul AZ bj-1配置

SpringCloud源碼分析 (Eureka-Client-架構) (一)

Zuul AZ bj-2配置

SpringCloud源碼分析 (Eureka-Client-架構) (一)

Service AZ bj-1配置

SpringCloud源碼分析 (Eureka-Client-架構) (一)

Service AZ bj-2配置

SpringCloud源碼分析 (Eureka-Client-架構) (一)

優先選擇同zone服務配置

SpringCloud源碼分析 (Eureka-Client-架構) (一)

當一個region有多個zone時,微服務調用應用時優先調用同zone内的應用。原因是eureka client有個配

置prefer-same-zone-eureka,預設為true。當同zone中的應用均不可用時,才會調用其它zone中的服

務。