hystrix要使用在服務的呼叫方,而不是服務的提供方。
1.新增依賴
org.springframework.cloudspring-cloud-starter-netflix-hystrix
2.在服務呼叫方的引導類上新增注 解 @enablecircuitbreaker
@enablediscoveryclient
//啟用eureka註冊中心的客戶端
@enablecircuitbreaker
//啟用熔斷器
public
class
@bean
@loadbalanced
//啟用 ribbon 負載均衡
public
resttemplate resttemplate()
public
static
void
main(string args)
}3.在controller上或者方法上新增註解使用 fallback 呼叫服務的熔斷後的函式,返回值必須相同
@controller"/customer/user")
public
class
usercontroller
public string querybyidfallback(int id)
}
在需要使用熔斷呼叫函式的方法上使用 @hystrixcommand 註解的 fallbackmethod 屬性,定義熔斷後 的呼叫函式,熔斷函式的引數要保持一致 ,適用於單個方法上
當你需要熔斷的函式過多的使用,在使用單個的熔斷,就過於繁瑣,每乙個方法都需要乙個熔斷,所以可以使用全域性的熔斷,使用在類上
使用註解
@defaultproperties:這個使用在類上,宣告全域性的熔斷函式
@hystrixcommand:那個方法需要使用熔斷函式,就是用這個類,預設使用 全域性的熔斷 ,也可以配置自己的熔斷函式,fallbackmethod 屬性指明自己的熔斷函式
另外,在全域性的熔斷函式不需要引數。
package cn.itcast.service.controller;@controller
"/customer/user")
@defaultproperties(defaultfallback = "
fallbackmethod")
public
class
usercontroller
public
string fallbackmethod()
}
4.當你訪問資源的時候hystrix預設的超時時間是1s,但是在上線之後,服務間的呼叫需要網路傳輸,1s是不夠的,需要覆蓋預設的超時時間,在配置檔案中
hystrix:command:
default
: execution:
isolation:
thread:
timeoutinmilliseconds:
3000 #設定hystrix超時時間,預設為ms
////
@enablediscoveryclient
//啟用eureka註冊中心的客戶端
//@enablecircuitbreaker
//啟用熔斷器
上面三個的組合註解
public
Hystrix熔斷器(筆記)
當請求的微服務宕機,或者響應時間超時,會觸發熔斷機制,熔斷當前請求。hystrix 是乙個供分布式系統使用,提供延遲和容錯功能,保證複雜的分布系統在面臨不可避免的失敗時,仍能有其彈性。1 依賴 hystrix依賴,主要是用 hystrixcommand org.springframework.clo...
熔斷器Hystrix簡介
1 未使用統一的 退路方法,要在每個方法上配置 hystrixcommand fallbackmethod fallback hystrixcommand fallbackmethod fallback public object get pathvariable long id 退路 public...
Hystrix系列之熔斷器
熔斷器有三種狀態 關閉 開啟和半開 三者之間的轉換邏輯如下圖所示 熔斷器預設為 關閉 狀態 當失敗率或者失敗總量超過設定閾值,則變為 開啟 狀態,並開啟定時器 達到hystrixcommandproperties.circuitbreakersleepwindowinmilliseconds 設定的...