Ribbon使用及其客戶端負載均衡實現原理分析

2022-09-08 01:24:17 字數 2374 閱讀 9602

(1)consumer工程新增依賴

說明:①由於spring-cloud-starter-eureka已經依賴了spring-cloud-starter-ribbon,所以不用再新增spring-cloud-starter-ribbon依賴了   

②spring cloud 引入ribbon 配合resttemplate 實現客戶端負載均衡、此處需要引入okhttp依賴 (也可以使用apacheclient等其他遠端呼叫技術)

(2)配置ribbon引數

#配置ribbon

ribbon:

maxautoretries:

2#最大重試次數,當eureka中可以找到服務,但是連線不上時將會重試

maxautoretriesnextserver:

3#切換例項的重試次數、高可用場景

oktoretryonalloperation:

false

#對所有操作請求都進行重試,如果是get則可以,如果是post、put有重複提交的危險,建議設定為false

connecttimeout:

5000

#請求連線的超時時間

readtimeout:

6000 #請求處理的超時時間

(3)定義resttemplate

@bean

@loadbalanced //使用該註解表示實現客戶端負載均衡

public

resttemplate resttemplate()

(4)啟動兩各producer工程,注意埠不同,註冊到eureka中

(5)測試**

@springboottest

@runwith(springrunner.

class

)public

class

testribbon

}}

(1)區別服務端負載均衡和客戶端負載均衡

向nginx 、f5 等在請求發出之後,被負載均衡伺服器攔截再分發到具體服務的方式是服務端負載均衡,而ribbon是客戶端先從eureka server獲取服務列表,自己維護服務列表,根據負載均衡演算法直接請求資源伺服器的方式叫服務端負載均衡

(2)ribbon 實現客戶端負載均衡細節

在定義resttempalte時加@loadbalanced註解後、resttemplate會走loadbanlanceinterceptor*** 

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...

ribbon客戶端負載均衡

參考 ribbon是netflix發布的負載均衡器,它有助於控制http和tcp的客戶端的行為。為ribbon配置服務提供者位址後,ribbon就可基於某種負載均衡演算法,自動地幫助服務消費者去請求。ribbon預設為我們提供了很多負載均衡演算法,例如輪詢 隨機等。當然,我們也可為ribbon實現自...