先看一張圖0這個圖是Eureka官方提供的架構圖,整張圖基本上把整個Eureka的核心功能給列出來了,當你要閱讀Eureka的源碼時能夠參考着這個圖和下方這些文章算法
EurekaServer就是咱們常說的服務端Eureka服務端的啓動可參考這篇文章EurekaServer自動裝配及啓動流程解析網絡
它維護了一張服務註冊表,在這個服務註冊表中包含了全部的客戶端信息架構
當服務端啓動時會作這麼幾個事情:負載均衡
EurekaClient就是咱們常說的客戶端Eureka客戶端的啓動可參考這篇文章:EurekaClient自動裝配及啓動流程解析線程
客戶端是與應用程序綁定到一塊兒的,某種意識上來講它是應用實例在註冊中心的代言人cdn
當客戶端啓動時會作這麼幾個事情:blog
當服務下線時會向服務端發送下線通知:Eureka服務下線源碼解析v8
在圖中三個EurekaServer之間是用線隔開的,在EurekaServer上面的三個us-east-xx其實就表明着三個服務端所在的三個分區。部署
爲何會出現分區這個概念呢?當一個項目的用戶量比較大時,通常會在多個城市的多個機房分別部署多套服務,爲了不網絡延時,咱們就但願一個條件容許的狀況下一個服務優先調用同機房的服務。爲了實現這個功能Ribbon還專門提供了一種負載均衡算法get
爲了不網絡分區故障的解決方案:Eureka自我保護模式源碼解析