Eureka--1、初識Eureka
Eureka用於Spring Cloud中的服務註冊與發現
什麼叫服務註冊與發現
使用一個專門的服務註冊中心,將所有的應用全部註冊到註冊中心,形成一個map,所有應用需要和外系統進行交換的時候,用服務的“唯一標識ID”去註冊中心獲取服務的資訊進行呼叫。
為什麼要有註冊中心,註冊中心的作用
1、統一管理
不需要每個專案都維護一套map了,由中心來做維護和同步,服務使用者直接使用key值,找到服務地址呼叫即可。
2、服務發生變更時,呼叫方無需重啟
伺服器是動態獲取配置的,不需要在配置改變的時候改變。可以實現對外業務系統不停機進行服務升級。
3、高可用
註冊中心設計成叢集,互為主備,保持高可用。
client自身也會快取一套map,即使所有的註冊中心全部down調,仍然可以使用自己的map,因為大部分情況下短時間內服務地址發生變更的機率非常小。
4、使得客戶端負載均衡成為可能。註冊中心有能力統計出所有伺服器在整個應用叢集中的請求session情況,可以實現基於請求數的負載均衡。
5、使得服務治理成為可能。註冊中心有能力感知某些伺服器的執行情況,網路情況,失敗次數,請求的響應時間等,可以實現基於這些資料的服務治理管控。
這只是初步認識,等我們Netflix這個系列講完,會更明白這些。
高可用的Eureka註冊中心架構。我們一定要用官方的一張圖片。
Eureka概念
Eureka本身是為AWS亞馬遜雲構建的負載均衡中介軟體,因為比較吊就擴散開了。
是依靠各主機的Session數實現的負載均衡,所以叫做客戶端負載均衡
因為亞馬遜雲的機器遍佈各地,他引入了兩個概念。Region和Zone。這倆玩意本是AWS的概念,也可以推廣到類似的大型系統中。具體可以百度,我們就簡單說一下。
Region是比較大的分割槽,Zone是比較小的分割槽。整個系統有N個Region,一個Region可能又有多個Zone,一個Zone可能有多個Eureka Server和多個Eureka Client。
Region的設定一般是物理上的,或者說地理上的,有一個獨立的機房就可以設定為一個Region,因為跨區域的網路一般要經過多層網路,還要有專線,比較昂貴且沒有那麼快。而機房內部都是內網,很快並且免費。所以在每個Region都有完整的一套程式。當然,資料儲存的一致性,那是另外的問題,不展開。
Zone的存在是因為有容災,自古以來大型系統,一個Region都不可能只有一個機房,如果斷電著火水災了怎麼辦,所以會搞至少兩個機房。那平時應該訪問哪個,另一個機房可能是同城,但是仍然是相隔很遠的郊區,訪問它的服務同樣會稍微慢一些,所以我們把服務分到不同的Zone中,優先訪問自己Zone內的服務,如果當前Zone內所有的服務都不可用,再去訪問其它Zone中的服務。
先開個頭,都寫在一起是在太長了。後面程式碼先寫起來再細講