Netflix開源他們的另一個架構 - Eureka
作者 Abel Avram 譯者巨澤建
查看英文原文:Netflix Open Sources Their AWS Service Registry, Eureka
Netflix開源了他們另一個架構——Eureka,它是一個 RESTful 服務,用來定位運行在 AWS 域(Region)中的中間層服務。
Eureka 由兩個組件組成:Eureka服務器和Eureka客戶端。Eureka 服務器用作服務注冊服務器。Eureka 客戶端是一個 java 客戶端,用來簡化與服務器的交互、作為輪詢負載均衡器,并提供服務的故障切換支持。Netflix 在其生產環境中使用的是另外的客戶端,它提供基于流量、資源利用率以及出錯狀態的加權負載均衡。
除負載均衡外,Netflix 中的其他開源工具也使用了 Eureka。比如,Asgard 是一個云部署管理工具,它使用 Eureka 來執行回滾和推送操作。Priam 使用 Eureka 在維護期停止 Cassandra 實例。Evcache 使用 Eureka 識別節點。而 Eureka 使用 Archaius 進行配置。
當一個中間層服務首次啟動時,他會將自己注冊到 Eureka 中,以便讓客戶端找到它,同時每 30 秒發送一次心跳。如果一個服務在幾分鐘內沒有發送心跳,它將從所有 Eureka 節點上注銷。一個 Amazon 域中可以有一個 Eureka 節點集群,每個可用區(Availability Zone)至少有一個 Eureka 節點。AWS 的域相互之間是隔離的。
對比亞馬遜的 ELB,Netflix 推銷 Eureka 時說:
AWS 彈性負載均衡服務是邊界服務的負載均衡解決方案,邊界服務是向終端用戶訪問 Web 而開放的。Eureka 填補了中間層負載均衡的空缺。雖然,理論上可以將中間層服務直接掛在 AWS 彈性負載均衡器后面,但這樣會將它們直接開放給外部世界,從而失去了 AWS 安全組的所有好處。
Eureka 使用 Servo 進行性能監控和告警。Netflix 表示,將于近期開源其生產環境的負載均衡解決方案,并將更好地集成 Eureka 和 Asgard。
Netflix 最近開源了另一個工具,Chaos Monkey。這是一個讓服務器下線的“搗蛋鬼”,用來測試 AWS 云部署方案的彈性。
來自: InfoQ