# 設定連線超時時間ribbon.connecttimeout=500# 設定讀取超時時間
ribbon.readtimeout=5000# 對所有操作請求都進行重試
ribbon.oktoretryonalloperations=true
# 切換例項的重試次數
ribbon.maxautoretriesnextserver=2# 對當前例項的重試次數
ribbon.maxautoretries=1
# 設定針對user-service服務的連線超時時間在springcloudfeign中是預設開啟重試機制,從上面的配置資訊也可以看出,我們可以設定重試的次數。對於重試機制的測試,可以讓服務提供方的方法延遲隨機毫秒數來測試。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
# 設定熔斷超時時間也可以直接對指定的介面進行配置,採用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配置;hystrix.command.findalluser.execution.isolation.thread.timeoutinmilliseconds=10000# 關閉熔斷功能
hystrix.command.findalluser.execution.timeout.enabled=false
上面的配置資訊中,可以通過配置檔案全域性禁用hystrix也可以指定介面禁用。我們也可以註解屬性的方式禁用hystrix;
- 構建乙個關閉hystrix的配置類
@configurationpublic
class
disablehystrixconfiguration
}
@feignclient(value = "user-service",configuration = disablehystrixconfiguration.class在hystrix中我們可以直接通過@hystrixcommand註解的fallback引數進行配置降級處理方法,然而feign對其進行封裝,並提供了一種簡單的定義方式:)public
inte***ce userrafactorservice extends
userservice
1. 在之前的feign-consumer服務中建立乙個userservicefallback類,該類實現userservice介面。這裡對於哪個類介面的降級就實現哪個介面,
@component然後再@feignclient註解中指定服務降級處理類即可: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(value = "user-service",fallback = userservicefallback.class)在配置檔案中開啟hystrix:
feign:然後在user-service服務中將某個介面設定延遲測試:hystrix:
enabled:
true
spring cloud feign支援對請求和響應進行gzip壓縮,以提高通訊效率,配置方式如下:
# 配置請求gzip壓縮springcloudfeign為每乙個feignclient都提供了乙個feign.logger例項。可以根據feign.compression.request.enabled=true
# 配置響應gzip壓縮
feign.compression.response.enabled=true
# 配置壓縮支援的mime type
# 配置壓縮資料大小的下限
feign.compression.request.min-request-size=2048
logging.level.
引數配置格式來開啟feign客戶端的debug日誌,其中
為feign客戶端定義介面的完整路徑。如:
logging:然後再主類中直接加入looger.level的beanlevel:
com.wqh.feign.service.userservice: debug
@bean這裡也可以通過配置,然後在具體的feign客戶端來指定配置類實現日誌。public
logger.level feignloggerlevel()
日誌級別有下面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...