我部署了eureka-server
,eureka-client-1
,eureka-client-2
和zuul-proxy
。
eureka-client-*
正在从{status:"UP"}
更改为{status:"DOWN"}
。
如何降低延迟时间,以便zuul-proxy
始终指向eureka-client-*
{status:"UP"}
之一?
答案 0 :(得分:3)
有几种方法可以减少延迟。 以下值仅作为示例。
Eureka Server Response Cache
eureka服务器属性
eureka.server.response-cache-update-interval-ms: 5000 (default 30000)
Eureka服务器具有性能响应缓存,因此它不会返回它在上述毫秒内知道的实际值。您可以使用以上属性来减少此延迟。
Zuul Ribbon Cache
zuul property
ribbon.ServerListRefreshInterval: 5000 (default 30000)
如您所知,zuul正在使用Ribbon进行负载平衡,而Ribbon则具有服务器列表的缓存。默认值为30秒。您可以使用above属性调整此值以减少功能区缓存时间。
Eureka客户端缓存
eureka客户端属性(在您的情况下,它是zuul属性)
eureka.client.registryFetchIntervalSeconds : 30
Zuul是另一个eureka客户端,它使用eureka客户端检索特定服务的可用服务器列表。默认间隔为30秒,您可以使用上述属性调整此值。
eureka实例属性(在您的情况下,适用于您的eureka-client-1
,eureka-client-2
)
eureka.instance.lease-expiration-duration-in-seconds: 60 (default 90)
如果Eureka服务器在上述秒数内未收到心跳,则eureka服务器会从可用服务器列表中删除该实例。您的每个客户端每30秒发送一次心跳(该值也是可配置的,但不会更改此属性,因为eureka服务器根据30秒的假设有一些代码)。因此,如果连续三次无法发送(或服务器无法接收)心跳,则90秒意味着eureka实例将从列表中删除。您可以减少此持续时间,但您可能会有一些风险。此属性必须存在于您的eureka客户端。
这里有一篇关于此信息的精彩文章:http://blog.abhijitsarkar.org/technical/netflix-eureka/