hystrix熔斷器使用

2022-08-24 02:21:13 字數 1759 閱讀 5277

hystrix要使用在服務的呼叫方,而不是服務的提供方。

1.新增依賴

org.springframework.cloud

spring-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 設定的...