Netflix开源他们的另一个架构 - Eureka
jopen 12年前
<div id="news_body"> <p> 作者 <a href="/misc/goto?guid=4958331678849803020">Abel Avram</a> 译者巨泽建</p> <p> 查看英文原文:<a href="/misc/goto?guid=4958524132844220772">Netflix Open Sources Their AWS Service Registry, Eureka</a></p> <p> Netflix<a href="/misc/goto?guid=4958524132932192149">开源了</a>他们另一个架构——<a href="/misc/goto?guid=4958523703461021995">Eureka</a>,它是一个 RESTful 服务,用来定位运行在 AWS 域(Region)中的中间层服务。</p> <p> Eureka 由两个组件组成:<strong>Eureka</strong><strong>服务器</strong>和<strong>Eureka</strong><strong>客户端</strong>。Eureka 服务器用作服务注册服务器。Eureka 客户端是一个 java 客户端,用来简化与服务器的交互、作为轮询负载均衡器,并提供服务的故障切换支持。Netflix 在其生产环境中使用的是另外的客户端,它提供基于流量、资源利用率以及出错状态的加权负载均衡。</p> <p> 除负载均衡外,Netflix 中的其他开源工具也使用了 Eureka。比如,<a href="/misc/goto?guid=4958524133058252809">Asgard</a> 是一个云部署管理工具,它使用 Eureka 来执行回滚和推送操作。<a href="/misc/goto?guid=4958524133156096312">Priam</a> 使用 Eureka 在维护期停止 Cassandra 实例。Evcache 使用 Eureka 识别节点。而 Eureka 使用 <a href="/misc/goto?guid=4958524133243758904">Archaius</a> 进行配置。</p> <p> 当一个中间层服务首次启动时,他会将自己注册到 Eureka 中,以便让客户端找到它,同时每 30 秒发送一次心跳。如果一个服务在几分钟内没有发送心跳,它将从所有 Eureka 节点上注销。一个 Amazon 域中可以有一个 Eureka 节点集群,每个可用区(Availability Zone)至少有一个 Eureka 节点。AWS 的域相互之间是隔离的。</p> <p> 对比亚马逊的 ELB,Netflix 推销 Eureka 时说:</p> <blockquote> AWS 弹性负载均衡服务是边界服务的负载均衡解决方案,边界服务是向终端用户访问 Web 而开放的。Eureka 填补了中间层负载均衡的空缺。虽然,理论上可以将中间层服务直接挂在 AWS 弹性负载均衡器后面,但这样会将它们直接开放给外部世界,从而失去了 AWS 安全组的所有好处。 </blockquote> <p> Eureka 使用 <a href="/misc/goto?guid=4958524133325635853">Servo</a> 进行性能监控和告警。<a href="/misc/goto?guid=4958524132932192149">Netflix 表示</a>,将于近期开源其生产环境的负载均衡解决方案,并将更好地集成 Eureka 和 Asgard。</p> <p> Netflix 最近开源了另一个工具,<a href="/misc/goto?guid=4958524133440549732">Chaos Monkey</a>。这是一个让服务器下线的“捣蛋鬼”,用来测试 AWS 云部署方案的弹性。<br /> 来自: <a id="link_source2" href="/misc/goto?guid=4958524133518643213" target="_blank">InfoQ</a></p> </div>