目錄:
一:Eureka介紹java
二:Eureka架構圖node
三:Eureka組件git
四:Eureka做用github
五:Eureka和Zookeeper對比redis
什麼是Eureka
引入SpringCloud中文文檔介紹算法
Eureka is a REST (Representational State Transfer) based service that is primarily used in the AWS cloud for locating services for the purpose of load balancing and failover of middle-tier servers.緩存
At Netflix, Eureka is used for the following purposes apart from playing a critical part in mid-tier load balancing.服務器
-
For aiding Netflix Asgard - an open source service which makes cloud deployments easier, in架構
- Fast rollback of versions in case of problems avoiding the re-launch of 100's of instances which could take a long time.
- In rolling pushes, for avoiding propagation of a new version to all instances in case of problems.
-
For our cassandra deployments to take instances out of traffic for maintenance.app
-
For our memcached caching services to identify the list of nodes in the ring.
-
For carrying other additional application specific metadata about services for various other reasons.
意思爲:
Eureka是一種基於REST(Representational State Transfer)的服務,主要用於AWS雲,用於定位服務,以實現中間層服務器的負載平衡和故障轉移。
在Netflix,除了在中間層負載平衡中起關鍵做用以外,Eureka還用於如下目的。
-
爲了幫助Netflix Asgard - 一種開源服務,能夠更輕鬆地實現雲部署
- 在出現問題的狀況下快速回滾版本,避免從新啓動可能須要很長時間的100個實例。
- 在滾動推送中,以免在出現問題時將新版本傳播到全部實例。
-
對於咱們的cassandra部署,將實例從流量中取出進行維護。
-
對於咱們的memcached緩存服務來識別環中的節點列表。
-
因爲各類其餘緣由而攜帶有關服務的其餘應用程序特定元數據。
Eureka架構圖
上面的架構圖描述了Eureka是如何在Netflix部署的,這也是Eureka集羣的運行方式。在每一個區域(region)都有一個eureka集羣,它只知道該區域內的實例信息。每一個分區(zone)至少有一個eureka服務器來處理本分區故障。
服務註冊在Eureka上而且每30秒發送心跳來續租。若是一個客戶端在幾回內沒有刷新心跳,它將在大約90秒內被移出服務器註冊表。註冊信息和更新信息會在整個eureka集羣的節點進行復制。任何分區的客戶端均可查找註冊中心信息(每30秒發生一次)來定位他們的服務(可能會在任何分區)並進行遠程調用。
Eureka組件
Eureka做用
1.中心化配置:用一個統一的註冊中心管理各個節點,如zookeeper
Zookeeper和Eureka對比
著名的CAP理論指出,一個分佈式系統不可能同時知足C(一致性)、A(可用性)和P(分區容錯性)。因爲分區容錯性在是分佈式系統中必需要保證的,所以咱們只能在A和C之間進行權衡。在此Zookeeper保證的是CP, 而Eureka則是AP。
zookeeper優先保證CP,當服務發生故障會進行leader的選舉,整個期間服務處在不可用狀態,若是選舉時間過長勢必會大幅度下降性能,另外就用途來講zookeeper偏向於服務的協調,固然含有註冊中心的做用
eureka優先保證AP, 即服務的節點各個都是平等的,沒有leader不leader一說, 當服務發生故障時,其他的節點仍然能夠提供服務,所以在出現故障時,性能表現優於zookeeper,可是可能會形成數據不一致的狀況。
總結:Eureka做爲單純的服務註冊中心來講要比zookeeper更加「專業」,由於註冊服務更重要的是可用性,咱們能夠接受短時間內達不到一致性的情況。