我怎样才能降低 zuul-proxy 延迟?

How can i lower the zuul-proxy delay?

我部署了 eureka-servereureka-client-1eureka-client-2zuul-proxy

eureka-client-* 正在从 {status:"UP"} 变为 {status:"DOWN"}

如何降低延迟,使 zuul-proxy 始终指向 eureka-client-* 之一,即 {status:"UP"}

有几个选项可以减少延迟。 以下值仅供参考。

Eureka 服务器响应缓存

尤里卡服务器属性

eureka.server.response-cache-update-interval-ms: 5000 (default 30000)

Eureka 服务器具有针对性能的响应缓存,因此它不会 return 它在超过毫秒内知道的实际值。您可以使用上述 属性.

减少此延迟

Zuul 功能区缓存

zuul 属性

ribbon.ServerListRefreshInterval: 5000  (default 30000)

如您所知,zuul 使用 Ribbon 进行负载平衡,Ribbon 具有服务器列表缓存。默认值为 30 秒。您可以使用上述 属性 调整此值以减少色带缓存时间。

Eureka 客户端缓存

eureka客户端属性(你的情况是zuul属性)

eureka.client.registryFetchIntervalSeconds : 30

Zuul 是另一个 eureka 客户端,它使用 eureka 客户端检索特定服务的可用服务器列表。默认间隔为 30 秒,您可以使用上面的 属性.

调整此值

租约到期期限

eureka 实例属性(在您的情况下,对于您的 eureka-client-1eureka-client-2

eureka.instance.lease-expiration-duration-in-seconds: 60 (default 90)

如果 Eureka 服务器在上述秒数内没有收到心跳,eureka 服务器将从可用服务器列表中删除该实例。您的每个客户端每 30 秒发送一次心跳(该值也是可配置的,但不要更改此 属性 因为 eureka 服务器有一些代码基于这 30 秒的假设)。所以90秒就是说如果eureka实例连续3次发送失败(或者服务器接收失败)心跳,就会从列表中移除。您可以缩短此持续时间,但可能会有一些风险。这个 属性 必须存在于你的 eureka 客户端。

这里有一篇关于此信息的很棒的文章:http://blog.abhijitsarkar.org/technical/netflix-eureka/