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 云部署方案的弹性。
查看英文原文: Netflix Open Sources Their AWS Service Registry, Eureka
评论