gpt4 book ai didi

spring-cloud - zuul 缓慢获取新的服务客户端

转载 作者:行者123 更新时间:2023-12-04 00:34:19 26 4
gpt4 key购买 nike

我正在通过 Zuul 调用我的演示服务。当我重新启动 demo-service 并在 Eureka 中注意到它时,Zuul 抛出了一个关于“负载均衡器没有可用于客户端的服务器:demo-service”的异常。

当我继续通过 Zuul 调用 demo-service 时,它​​大约在 30 秒后才开始工作。

Eureka 服务器配置:

spring.application.name=registry
server.ip=127.0.0.1
server.port=6006

eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.serviceUrl.defaultZone=http://${server.ip}:${server.port}/eureka/

eureka.server.enable-self-preservation=false
eureka.server.eviction-interval-timer-in-ms=5000

zuul 配置:

spring.application.name=gateway
server.port=4002

## demo
zuul.routes.api-demo.path=/demo/**
zuul.routes.api-demo.serviceId=demo-service

eureka.client.serviceUrl.defaultZone=http://127.0.0.1:6006/eureka
eureka.instance.prefer-ip-address=true
eureka.client.registryFetchIntervalSeconds=5
logging.level.root=debug

eureka 客户端配置(演示服务):

spring.application.name=demo-service
server.port=6020

endpoints.shutdown.enabled=true
endpoints.shutdown.sensitive=false

eureka.client.serviceUrl.defaultZone=http://127.0.0.1:6006/eureka
eureka.instance.prefer-ip-address=true

eureka.instance.lease-renewal-interval-in-seconds=5
eureka.instance.lease-expiration-duration-in-seconds=10

eureka.client.healthcheck.enabled=true

Zuul 配置中的 eureka.client.registryFetchIntervalSeconds=5 似乎不起作用,因为 Zuul 最多需要 30 秒才能了解演示服务实例。我怎样才能让它正常工作?

最佳答案

Eureka Client 和 Eureka Server 之间有很多缓存层和间隔。因此,您的 Eureka 客户端无法立即识别状态更改。但是您可以使用以下属性来减少延迟。

  • eureka.server.responseCacheUpdateInvervalMs
    • 在 eureka 服务器中定义。
    • 是eureka服务器API的响应缓存时间。默认值为 30 秒,对于大多数情况来说它太大了。您可以减小此值。
  • eureka.client.registryFetchIntervalSeconds
    • 在 eureka 客户端中定义。
    • 从 Eureka Server 获取注册表的时间间隔。你可以减少它。
  • ribbon.ServerListRefreshInterval
    • 在功能区(eureka)客户端中定义。
    • 通常 Eureka 与 Ribbon 一起使用。因此,Ribbon 的获取间隔对于减少延迟也很重要。默认为 30 秒。你可以减少它。

关于spring-cloud - zuul 缓慢获取新的服务客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46091314/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com