Spring Cloud Eureka体系总览

栏目: Java · 发布时间: 6年前

内容简介:Spring Cloud Eureka体系总览

Eureka是Netflix公司开源的一款基于REST的服务自动注册和发现的产品,如下图所示Eureka可以分为三个部分:

Eureka-Server:提供服务注册和发现。

Eureka-Client-Service-Provider:服务提供者,通过Rest告知服务端注册,更新,取消服务。

Eureka-Client-Service-Consumer:服务消费者,通过Rest从服务端获取需要服务的地址列表,然后配合一些负载均衡策略来调用相关的服务。

Spring Cloud Eureka体系总览

Eureka Server

服务注册(Register)

Eureka Server中会保存一份所有Service注册信息的map,将InstanceInfo中的元数据信息存储在一个 ConcurrentHashMap<String, Map<String, Lease<InstanceInfo>>> 对象中,它是一个双层Map结构,第一层的存储 服务名-appName ,第二层的存储 实例名-instanceId 属性。

如果没有设置 eureka.instance.appName 默认使用 spring.application.name ,如果没有设置 eureka.instance.instanceId 则默认是 CLIENT IP:PORT

服务续约(Renew)

Eureka Client每隔一段时间都会向Eureka Server发送一个心跳声明自己目前处于正常的状态。

服务剔除(Canel)

Eureka会定期检查是否有服务已经失效,检测的标准就是超过指定的时间没有进行续约的服务,这个指定的时间可以通过 eureka.instance.lease-expiration-duration-in-seconds=90 来指定,Eureka Server定期检查的时间可以通过 eureka.instance.lease-renewal-interval-in-seconds=30 来设置。

Peer复制

当一个Eureka Client向一个Eureka Server实例注册/续约/剔除之后,这台Eureka Server需要将相关的信息同步更新到其他的Eureka Server。

Service Provider

Service Provider(Eureka Client)主要负责下面几个任务:

  • 向Eureka Server注册服务。
  • 向Eureka Server服务续约。
  • 当服务关闭期间,向Eureka Server注销。
  • Eureka Client还需要配置一个Eureka Server的URL列表。

注册

Service Provider要对外提供服务,一个很重要的步骤就是向Eureka Server去注册。

服务续约

Service Provider每个一定时间就会通知Eureka Server来表明自己依然还活着,这个参数默认是30s,可以通过 eureka.instance.leaseRenewalIntervalInSecends 来设置。

服务剔除

在Service Provider要Shutdown的时候,需要及时通知Eureka Server将自己剔除,避免Consumer调用不存在的服务,这可以通过调用 DiscoveryManager.getInstance().shutdownComponent() 来实现。

Consumer

Fetch Service Registry

通过 eureka.client.fetch-registry=true 来允许从Eureka Server获取服务列表。

Update Service Registry

Consumer会在本地保存一份所有服务的缓存列表,每隔一定的时间都会重新向Eureka Server查询来更新这份列表,这个参数可以通过 eureka.client.registry-fetch-interval-seconds=30 来指定这个时间。p.s: Consumer也是属于Eureka Client。

为什么服务注册会慢

当Erueka Client向Eureka Server注册一个服务,有时候我们会发现不能从Consumer立即读取到注册服务,主要有下面四个原因:

  • Eureka Client每隔一定时间(默认是30s)才会向Eureka Server发送心跳信息。
  • Eureka Client自身在本地也有一份服务列表缓存。
  • Eureka Server也保持了一份缓存。
  • 通过Ribbon做负载均衡的时候,Ribbon也保存了一份服务列表的缓存。

以上所述就是小编给大家介绍的《Spring Cloud Eureka体系总览》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

网站搜索设计

网站搜索设计

[美] Shari Thurow、[美] Nick Musica / 向怡宁 / 人民邮电出版社 / 2011-4 / 35.00

本书是提高网站搜索可用性的红宝书,它将SEO 和Web 可用性两个不同领域的知识融会贯通,详细阐述了用户的各种搜索行为和行为背后的真实意图,以及网站如何迎合用户心理,以便提供令其满意的内容,进而实现网站所有者的商业目标。 本书不仅仅是SEO 专业人员和Web 可用性人员的参考必备,同时更可为网络文案、设计开发人员、营销专员以及网站所有者、管理者等其他Web 领域从业人员拓展视野、补强技能。一起来看看 《网站搜索设计》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具