當請求的微服務宕機,或者響應時間超時,會觸發熔斷機制,熔斷當前請求。
hystrix 是乙個供分布式系統使用,提供延遲和容錯功能,保證複雜的分布系統在面臨不可避免的失敗時,仍能有其彈性。
1、依賴
<
!--hystrix依賴,主要是用 @hystrixcommand -->
org.springframework.cloud
spring-cloud-starter-netflix-hystrix
2、在消費者配置檔案中新增hystrix配置
# 開啟熔斷機制
feign.hystrix.enabled=true
# 設定hystrix超時時間,預設1000ms
hystrix.command.default.execution.isolation.thread.timeoutinmilliseconds=6000
3、新增feignclient介面的實現類(該介面定義在服務消費者中)feignclient介面是宣告遠端微服務方法的介面,通過它的實現類來決定熔斷觸發後執行的方法,以下是介面以及實現類。
介面
@feignclient
(name =
"service-vod"
,fallback = vodclientimpl.
class
)@component
public
inte***ce
vodclient")
public re deletevideobyid
(@pathvariable
("id"
) string id)
;}
實現類
@component
public
class
vodclientimpl
implements
vodclient
}
通過以上配置,當請求的服務宕機或出現其他不可預期的錯誤時,都會觸發熔斷機制,從而執行feignclient介面實現類裡面的方法。 熔斷器Hystrix簡介
1 未使用統一的 退路方法,要在每個方法上配置 hystrixcommand fallbackmethod fallback hystrixcommand fallbackmethod fallback public object get pathvariable long id 退路 public...
Hystrix系列之熔斷器
熔斷器有三種狀態 關閉 開啟和半開 三者之間的轉換邏輯如下圖所示 熔斷器預設為 關閉 狀態 當失敗率或者失敗總量超過設定閾值,則變為 開啟 狀態,並開啟定時器 達到hystrixcommandproperties.circuitbreakersleepwindowinmilliseconds 設定的...
專案整合Hystrix熔斷器
org.springframework.cloudgroupid spring cloud starter netflix ribbonartifactid dependency org.springframework.cloudgroupid spring cloud starter netfli...