SpringCloud升级之路2020.0.x版-18.Eureka的客户端核心设计和配置 (2)

拉取后的实例会被保存到本地缓存中,本地缓存具有过期时间:

eureka: client: # eureka client 刷新本地缓存时间 # 默认30s registry-fetch-interval-seconds: 5 # 只保留状态为 UP 的实例,默认为 true filter-only-up-instances: true # eureka client 刷新本地缓存(定时拉取 eureka 实例列表)线程池大小,默认为 2 cache-refresh-executor-thread-pool-size: 2 # eureka client 刷新本地缓存(定时拉取 eureka 实例列表)线程池任务最大延迟时间,这个配置是定时拉取任务延迟(registry-fetch-interval-seconds)的倍数,默认 10 倍 cache-refresh-executor-exponential-back-off-bound: 10

同时,在 Spring Cloud 环境中,只要是基于 spring-cloud-commons 的微服务实现(其实所有 Spring Cloud 实现都是基于这个实现的),服务发现的 Client: DiscoveryClient(同步环境) 与 ReactiveDiscoveryClient(异步环境)都是使用的 Composite 的实现,也就是内部有多种服务发现 Client,服务发现按照一定顺序调用每一个服务发现 Client,这里也可以配置 Eureka Client 的顺序。

eureka: client: #在spring cloud 环境中,DiscoveryClient 用的其实都是 CompositeDiscoveryClient,这个 CompositeDiscoveryClient 逻辑其实就是多个 DiscoveryClient 共存,先访问一个,没找到就通过下一个寻找 #这个order决定了顺序,默认为 0 order: 0

image

我们在本地测试的时候,可能不想将本地这个实例注册到 Eureka Server 上面,这也是可以配置的:

eureka: client: # 是否将自己注册到 eureka 上面 register-with-eureka: true

同时,Eureka 本身的设计中,Eureka 实例信息以及配置是可以改变的,那么多久会同步到 Eureka Server 上呢?注意这个和心跳请求不一样,这个是可以单独配置的:

eureka: client: # 实例信息同定时同步到 Eureka Server 的间隔时间。每隔这么长时间,检查实例信息(即eureka.instance配置信息)是否发生变化,如果发生变化,则同步到 Eureka Server,默认 30s # 主要检查两类信息,分别是服务地址相关信息,以及服务过期时间与刷新时间配置信息 instance-info-replication-interval-seconds: 30 # 实例信息同定时同步到 Eureka Server 的初始延迟时间,默认 40s initial-instance-info-replication-interval-seconds: 40

还有一些其他配置我们可能也用的到:

eureka: client: # 是否在初始化的时候就注册到 eureka,一般设置为 false,因为实例还不能正常提供服务 should-enforce-registration-at-init: false # 是否在关闭的时候注销实例,默认为 true should-unregister-on-shutdown: true # 是否对于实例状态改变更新进行限流,默认为 true on-demand-update-status-change: true

image

Eureka Client 基于 Http 请求获取服务实例信息,这里可以针对 Http 客户端进行配置:

eureka: client: # 代理相关配置 # proxy-host: # proxy-port: # proxy-user-name: # proxy-password: # 是否对于发往 Eureka Server 的 http 请求启用 gzip,目前已经过期了,只要 Eureka Server 启用了 gzip,请求就是 gzip 压缩的 g-zip-content: true # httpclient 的链接超时,默认 5s eureka-server-connect-timeout-seconds: 5 # httpclient 的读取超时,默认 5s eureka-server-read-timeout-seconds: 8 # httpclient 的空闲连接超时,默认 30s eureka-connection-idle-timeout-seconds: 30 # httpclient 的总连接数量,默认 200 eureka-server-total-connections: 200 # httpclient 的每个 host 的连接数量 eureka-server-total-connections-per-host: 50 # tls 相关配置,默认没有启用 # tls: # enabled: false # key-password: # key-store: # key-store-password: # key-store-type: # trust-store: # trust-store-password: # trust-store-type:

SpringCloud升级之路2020.0.x版-18.Eureka的客户端核心设计和配置

我们这一节详细分析了 Eureka 的客户端配置。下一节,我们将开始分析 Eureka Server 相关的配置。

微信搜索“我的编程喵”关注公众号,每日一刷,轻松提升技术,斩获各种offer

SpringCloud升级之路2020.0.x版-18.Eureka的客户端核心设计和配置

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyxfpf.html