簡體   English   中英

如何在Zuul啟用Hystrix斷路器?

[英]How to enable Hystrix circuit breaker at zuul?

在我的應用程序中,我們使用的是springboot microservices,具有eureka注冊表,zuul api網關,這里假設我有2個Payment-Service實例,當ul的一個節點時,zuul使用功能區將/ payment端點負載均衡到Payment-service。付款服務沒有響應,並且仍在eureka上注冊。 在這里,我們在Zuul apigateway上配置了hystrix斷路器,但是對於沒有響應的節點,hystrix斷路器並未打開。

Zuul 為每個路由 (serviceId)創建一個Hystrix斷路器 這意味着您的所有付款服務實例之間共享 一個 Hystrix斷路器。

Zuul為每個路由創建的斷路器不是要從路由列表中刪除不正常的實例 僅僅是為了防止Zuul的故障,這種故障可能是由一種服務故障引起的。

假設您正在使用Hystrix的默認配置。 如果您有3個支付服務實例,而其中3個實例處於關閉狀態,則將斷開用於支付服務的斷路器(因為默認的失敗開門閾值為50%)。 這意味着從Zuul到您的付款服務(包括您的一個正常實例)的所有流量都將被阻止。

您想要的-從路由列表中刪除不正常的實例-是Ribbon的角色。 功能區定義了許多接口來定義其行為,例如IRule,IPing。 其中一些具有所需的能力。

通過將功能區更改為<ServiceName>: ribbon: NFLoadBalancerRuleClassName: com.netflix.loadbalancer.AvailabilityFilteringRule ,可以使用功能區實現<ServiceName>: ribbon: NFLoadBalancerRuleClassName: com.netflix.loadbalancer.AvailabilityFilteringRule https://github.com/Netflix/ribbon/wiki/Working-with-load-balancers

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM