客戶端負載均衡Feign之四 Feign配置

2021-09-07 14:48:57 字數 3440 閱讀 1365

# 設定連線超時時間

ribbon.connecttimeout=500# 設定讀取超時時間

ribbon.readtimeout=5000# 對所有操作請求都進行重試

ribbon.oktoretryonalloperations=true

# 切換例項的重試次數

ribbon.maxautoretriesnextserver=2# 對當前例項的重試次數

ribbon.maxautoretries=1

# 設定針對user-service服務的連線超時時間

user-service.ribbon.connecttimeout=600# 設定針對user-service服務的讀取超時時間

user-service.ribbon.readtimeout=6000# 設定針對user-service服務所有操作請求都進行重試

user-service.ribbon.oktoretryonalloperations=true

# 設定針對user-service服務切換例項的重試次數

user-service.ribbon.maxautoretriesnextserver=2# 設定針對user-service服務的當前例項的重試次數

user-service.ribbon.maxautoretries=1

在springcloudfeign中是預設開啟重試機制,從上面的配置資訊也可以看出,我們可以設定重試的次數。對於重試機制的測試,可以讓服務提供方的方法延遲隨機毫秒數來測試。

# 設定熔斷超時時間

hystrix.command.

default.execution.isolation.thread.timeoutinmilliseconds=10000# 關閉hystrix功能(不要和上面的配置一起使用)

feign.hystrix.enabled=false

# 關閉熔斷功能

hystrix.command.

default.execution.timeout.enabled=false

也可以直接對指定的介面進行配置,採用hystrix.command.default.作為字首,比如如/findalluser

# 設定熔斷超時時間

hystrix.command.findalluser.execution.isolation.thread.timeoutinmilliseconds=10000# 關閉熔斷功能

hystrix.command.findalluser.execution.timeout.enabled=false

對於重複的介面名會共用這一條hystrix配置;

上面的配置資訊中,可以通過配置檔案全域性禁用hystrix也可以指定介面禁用。我們也可以註解屬性的方式禁用hystrix; 

- 構建乙個關閉hystrix的配置類

@configuration

public

class

disablehystrixconfiguration

}

@feignclient(value = "user-service",configuration = disablehystrixconfiguration.class

)public

inte***ce userrafactorservice extends

userservice

在hystrix中我們可以直接通過@hystrixcommand註解的fallback引數進行配置降級處理方法,然而feign對其進行封裝,並提供了一種簡單的定義方式: 

1. 在之前的feign-consumer服務中建立乙個userservicefallback類,該類實現userservice介面。這裡對於哪個類介面的降級就實現哪個介面,

@component

public

class userservicefallback implements

userservice

@override

public

user finuserbyid(long id)

@override

public

user finduserheader(string name, long id, integer age)

@override

public

user insertuser(user user)

}

然後再@feignclient註解中指定服務降級處理類即可:

@feignclient(value = "user-service",fallback = userservicefallback.class)
在配置檔案中開啟hystrix:

feign:

hystrix:

enabled:

true

然後在user-service服務中將某個介面設定延遲測試: 

spring cloud feign支援對請求和響應進行gzip壓縮,以提高通訊效率,配置方式如下:

# 配置請求gzip壓縮

feign.compression.request.enabled=true

# 配置響應gzip壓縮

feign.compression.response.enabled=true

# 配置壓縮支援的mime type

# 配置壓縮資料大小的下限

feign.compression.request.min-request-size=2048

springcloudfeign為每乙個feignclient都提供了乙個feign.logger例項。可以根據logging.level.引數配置格式來開啟feign客戶端的debug日誌,其中為feign客戶端定義介面的完整路徑。如:

logging:

level:

com.wqh.feign.service.userservice: debug

然後再主類中直接加入looger.level的bean

@bean

public

logger.level feignloggerlevel()

這裡也可以通過配置,然後在具體的feign客戶端來指定配置類實現日誌。 

日誌級別有下面4類: 

- none:不記錄任何資訊; 

- basic:僅記錄請求方法、url以及響應狀態碼和執行時間; 

- headers:除了記錄basic級別的資訊外,還記錄請求和響應的頭資訊; 

- full:記錄所有請求與響應的明細,包括頭資訊、請求體、元資料等。

客戶端負載均衡

客戶端負載均衡就是服務端負載均衡而言的。服務端負載均衡 就是傳統的nginx的方式,用nginx做負載均衡,我們稱之為服務端負載均衡。這種負載均衡,我們稱為伺服器負載均衡,它的特點是,就是呼叫的客戶端不知道具體是哪乙個server提供的服務,他也不關心,反正請求傳送給nginx,nginx再將請求 ...

ribbon客戶端負載均衡

ribbon會儲存註冊中心應用,然後定時去更新,而不是每次都要先訪問註冊中心,再訪問應用 依賴org.springframework.cloud spring cloud starter netflix ribbon 複製 配置resttemplate bean是乙個方法級別上的註解,主要用在 co...

客戶端負載均衡 Ribbon

1.集群user server c v 改東西 user server pom.xml user server 3001artifactid user server 3001name parent pm.xml user server 3001module eureka client service...