使用Ribbon實現客戶端側負載均衡

2021-10-06 23:17:59 字數 867 閱讀 5508

ribbon是netflix發布的負載均衡器,有助於控制http和tcp客戶端的行為.為ribbon配置服務提供者位址列表後,ribbon配置服務提供者位址列表後,ribbon預設為我們提供了許多負載均衡演算法,例如輪詢,隨機等,當然我們也可以為ribbon自定義負載均衡演算法

在springcloud中,ribbon與eureka配合使用的時候

ribbon可以自動從eureka server獲取服務提供者位址列表,並基於負載均衡演算法請求其中乙個服務提供者例項

ribbon其實就是使用負載均衡演算法:輪詢,隨機等,進行對eureka中註冊的多個同類服務提供者進行訪問

這樣實現了負載均衡操作

實現步驟:

先給專案引入ribbon所需要的依賴,然後使用resttemplate進行遠端呼叫

其中resttemplate的@bean之後記得貼@loadbalanced註解(給予這個resttemplate負載均衡的能力)

預設是輪詢規則

我們將resttemplate的遠端呼叫位址使用eureka中對映的專案名,這樣能夠讓ribbon呼叫多個專案

但是實際上ribbon本身還是會將虛擬主機名對映成微服務的網路位址

ribbon底層原理:

1.請求傳送到伺服器,現在開始輪詢

debug放行 到loadbalancerinterceptor類中

其中intercept方法中獲取伺服器的uri和伺服器名稱

這裡呼叫了ribbonloadbalancerclient類中的execute方法

其中iloadbalancer獲取乙個負載均衡器

server根據負載均衡器演算法在server列表中選中指定的server 此時已經獲取到了整個url的資訊

包括ip位址和埠

微服務5 Ribbon實現客戶端側負載均衡

格物致知,格ribbon實現的客戶端負載均衡。控制http和tcp客戶端的行為,根據服務提供者位址列表,ribbon可以自動的幫助服務消費者取請求。ribbon預設提供了很多的負載均衡演算法,例如輪詢,隨機等。我們也可以為ribbon實現自定義的負載均衡演算法。spring cloud中,ribbo...

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