Spring Cloud学习之五 Eureka详细分析

 目录

一、基础架构

二、服务治理机制

三、分析源码

四、配置详细分析

五、跨平台支持


一、基础架构

Eureka服务治理基础架构包含三个核心要素:

服务注册中心:Eureka提供的服务端,提供服务注册和服务发现的功能。

服务提供者:提供服务的应用,可以将自己提供的服务注册到eureka,以供其他服务区调用。

服务消费者:消费者应用从注册中心获取服务列表,找到自己所需要调用的服务。

 

二、服务治理机制

(一)、服务提供者

              1、服务注册:当服务提供者启动时会通过REST请求的方式将自己注册到EurekaServer上,并带上服务自身的一些元数据。而EurekaServer接收到REST请求后,将元数据存储在双层Map中,第一层key为服务名,第二层key为具体服务的实例名。

              2、服务同步:如果将两个服务注册到两个不同的注册中心时,设置注册中心之间相互注册为服务,当服务提供者向其中一个注册中心发送请求时,会转发到集群中相连的另一个注册中心,这样就可以实现服务同步。

              3、服务续约:注册完成后,服务提供者会维护一个心跳用来持续告诉EurekaServer自己的状态,防止EurekaServer将自己剔除,此操作称为服务续约。服务续约的两个重要属性:

#定义服务续约任务的调用时间间隔
eureka.instance.lease-renewal-interval-in-seconds = 30
#服务失效时间
eureka.instance.lease-expireation-duration-in-seconds=90

 (二)、服务消费者

               1、获取服务列表:当服务消费者启动时,会发起rest请求到注册中心,获取服务清单(为了性能考虑,清单只可读)。缓存清单更新时间默认为90秒,可通过eureka.client.registry-fetch-interval-seconds=30来设置。

               2、服务调用:通过服务名获取元数据,根据自己需求调用哪个实例。(Region和Zone概念)

               3、服务下线:如果服务正常关闭的话,会通过rest请求通知注册中心。

(三)、服务注册中心

              1、失效剔除:EurekaServer启动时,会默认开启一个定时任务,默认每隔60秒将清单中超过(90秒)没有续约的服务剔除。

              2、自我保护:容错机制、断路器、请求重试等等

三、分析源码

(待补充)

四、配置详细分析

(一)、服务注册类配置:可通过org.springframework.cloud.netflix.eureka.server.EurekaServerConfigBean查看源码或者官方文档进行查看。

(二)、注册中心指定:通过eureka.client.service-url.defaultZon=http://localhost:1111/eureka/

属性设置注册中心地址,多个注册中心可以用逗号分隔。若需要安全验证时可以http://<username>:<password>@localhost:1111/eureka/来配置,username为用户名,password为密码。

(三)、其他配置:

org.springframework.cloud.netflix.eureka.server.EurekaServerConfigBean 查看该类中的常量既发现可以默认配置。

(四)、服务实例配置:

org.springframework.cloud.netflix.eureka.server.EurekaServerConfigBean 查看该类中的常量既发现可以默认配置。

五、跨平台支持

Eureka不仅支持Java客户端,还支持其他语言平台,例如 eureka-js-client、python-eureka等等。

猜你喜欢

转载自blog.csdn.net/weixin_42228950/article/details/102765881