Spring Cloud - Eureka的真情独白

在这里插入图片描述

一.什么是Eureka?

Eureka 是一个基于 REST (REST)的服务,主要用于 AWS 云中定位服务,用于中间层服务器的负载平衡和故障转移。 我们称这个服务为 Eureka 服务器。 Eureka 还带有一个基于 java 的客户机组件—— Eureka Client,它使得与服务的交互更加容易。 客户机还有一个内置的负载平衡器,可以进行基本的循环负载平衡。 在 Netflix,一个更加复杂的负载平衡器包装了 Eureka 来提供基于诸如流量、资源使用、错误条件等因素的加权负载平衡,以提供更好的弹性。Eureka是基于REST(Representational State Transfer)服务,主要以AWS云服务为支撑,提供服务发现并实现负载均衡和故障转移。我们称此服务为Eureka服务。Eureka提供了Java客户端组件,Eureka Client,方便与服务端的交互。客户端内置了基于round-robin实现的简单负载均衡。在Netflix,为Eureka提供更为复杂的负载均衡方案进行封装,以实现高可用,它包括基于流量、资源利用率以及请求返回状态的加权负载均衡。

二.Eureka需要什么?

在 AWS 云中,由于其固有的特性,服务器来了又走。 与传统的负载均衡器不同,传统的负载均衡器与 IP 地址和主机名众所周知的服务器一起工作,在 AWS 中,负载均衡需要在动态的负载均衡器上对服务器进行更复杂的注册和去注册。 由于 AWS 尚未提供中间层负载均衡器,因此 Eureka 填补了中间层负载均衡领域的一大空白。

三.我应该什么时候使用 Eureka

您通常运行在 AWS 云中,并且拥有大量中间层服务,不希望在 AWS ELB 注册或者暴露来自外部世界的流量。 您要么正在寻找一个简单的循环式负载平衡解决方案,要么愿意根据您的负载平衡需求为 Eureka 编写自己的包装器。 您不需要在外部缓存(如 memcached)中使用粘贴会话和加载会话数据。 更重要的是,如果您的体系结构适合基于客户端的负载均衡器最受青睐的模型,那么 Eureka 就能很好地适应这种用法。

四.应用程序客户机和应用程序服务器如何通信?

通信技术可以是任何你喜欢的东西。 Eureka 可以帮助您找到有关您想要与之通信的服务的信息,但不会对通信协议或方法施加任何限制。 例如,您可以使用 Eureka 获得目标服务器地址,并使用诸如 thrift、 http (s)或任何其他 RPC 机制之类的协议。

五.高级体系结构

在这里插入图片描述

上面的体系结构描述了在 Netflix 中 Eureka 是如何部署的,以下是典型的运行方式。 每个区域有一个Eureka 集群,它只知道其区域的个实例。 每个区域至少有一个 Eureka 服务器来处理区域故障。

这些服务在Eureka注册,然后每30秒发送心跳信号续签租约。 如果客户端不能续约几次,则会在大约90秒内将其从服务器注册表中删除。 注册信息和更新被复制到集群中的所有 eureka 节点。 来自任何区域的客户机都可以查找注册表信息(每30秒发生一次)来定位他们的服务(可能位于任何区域)并进行远程调用。

更多内容阅读Eureka at a glance

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章