我怎样才能降低 zuul-proxy 延迟?
How can i lower the zuul-proxy delay?
我部署了 eureka-server
、eureka-client-1
、eureka-client-2
和 zuul-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-1
、eureka-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/
我部署了 eureka-server
、eureka-client-1
、eureka-client-2
和 zuul-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-1
、eureka-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/