柚子快報激活碼778899分享:java Ribbon總結(jié)
柚子快報激活碼778899分享:java Ribbon總結(jié)
一.Ribbon簡介
Ribbon 是 Netflix 公司實現(xiàn)的一套基于 HTTP、TCP 的客戶端負載均衡的工具。
SpringCloud 已將其集成到 spring-cloud-netflix 中,實現(xiàn) SpringCloud 的服務調(diào)用、負載均衡。
用于在微服務架構(gòu)中管理服務間的通信。它能夠?qū)崿F(xiàn)動態(tài)的服務發(fā)現(xiàn)和負載均衡,從而提高系統(tǒng)的可靠性和性能。
Ribbon客戶端組件提供一系列完善的配置項,如連接超時,重試等。就是在配置文件中列出Loade Balancer(簡稱LB)后面的所有機器,Ribbon會自動的幫助基于某種規(guī)則(輪詢,隨機等)去連接這些機器。也可以使用 Ribbon 實現(xiàn)自定義的負載均衡算法。
Ribbon 是 Spring Cloud 技術(shù)棧中非常重要的基礎框架,它為 Spring Cloud 提供了負載均衡的能力,比如 Fegin 和 OpenFegin 都是基于 Ribbon 實現(xiàn)的,就連 Nacos 中的負載均衡也使用了 Ribbon 框架。
注:
Ribbon 雖然已進入維護模式,但是一時半會還不容易被完全淘汰,還是可以學習一下基本使用的。
Ribbon 替代產(chǎn)品是 Loadbalancer。
【相關(guān)網(wǎng)址:】
https://github.com/Netflix/ribbon
http://jvm123.com/doc/springcloud/index.html#spring-cloud-ribbon
二.Ribbon 與 Nginx 負載均衡區(qū)別
【負載均衡(Load Balance):】 ? ? 負載均衡指的是 將工作任務 按照某種規(guī)則 平均分攤到 多個操作單元上執(zhí)行。 注: ? ? Web 項目的負載均衡,可以理解為:將用戶請求 平均分攤到 多個服務器上處理,從而提高系統(tǒng)的并發(fā)度、可用性。
【負載均衡分類:】 按照軟硬件劃分: ? ? 硬件負載均衡: 一般造價昂貴,但數(shù)據(jù)傳輸更加穩(wěn)定。比如: F5 負載均衡。 ? ? 軟件負載均衡: 一般采用某個代理組件,并使用 某種 負載均衡 算法實現(xiàn)(一種消息隊列分發(fā)機制)。比如:Nginx、Ribbon。
按照負載均衡位置劃分: ? ? 集中式負載均衡:提供一個 獨立的 負載均衡系統(tǒng)(可以是軟件,比如:Nginx,可以是硬件,比如:F5)。 ? ? ? ? 通過此系統(tǒng),將服務消費者的 請求 通過某種負載均衡策略 轉(zhuǎn)發(fā)給 服務提供者。 ? ? ? ?? ? ? 客戶端負載均衡(進程式負載均衡):將負載均衡邏輯整合到 服務消費者中,服務消費者 定時同步獲取到 服務提供者信息,并保存在本地。 ? ? ? ? 每次均從本地緩存中取得 服務提供者信息,并根據(jù) 某種負載均衡策略 將請求發(fā)給 服務提供者。 注: ? ? 使用集中式負載均衡時,服務消費者 不知道 任何一個服務提供者的信息,只知道獨立負載均衡設備的信息。 ? ? 使用客戶端負載均衡時,服務消費者 知道 所有服務提供者的信息。
【Nginx 負載均衡:】 ? ? Nginx 實現(xiàn)的是 集中式負載均衡,Nginx 接收 客戶端所有請求,并將請求轉(zhuǎn)發(fā)到不同的服務器進行處理。 ? ?? 【Ribbon 負載均衡:】 ? ? Ribbon 實現(xiàn)的是 客戶端負載均衡,從注冊中心獲得服務信息并緩存在本地,在本地進行 負載均衡。
三.Ribbon組件來實現(xiàn)負載均衡
(1)maven的坐標引入
(2)在?RestTemplate?上加入?@LoadBalanced?注解
@Configuration
public class WebConfig {
@LoadBalanced
@Bean
public RestTemplate restTemplate( ) {
return new RestTemplate();
}
}
這樣,restTemplate就會使用Ribbon 做負載均衡,Ribbon 默認的負載均衡策略是簡單輪詢(RoundRobin)。
(3)Nacos 中已經(jīng)內(nèi)置了 Ribbon,所以在實際項目開發(fā)中無需再添加 Ribbon 依賴了
(4)對于 eureka 來說,其 eureka-client 依賴中已經(jīng)集成了 ribbon 依賴,所以無需再次引入
四.Ribbon的負載均衡策略介紹
Ribbon 框架的強大之處在于,它不僅內(nèi)置了 7 種負載均衡策略,同時還支持用戶自定義負載均衡策略,所以其開放性和便利性也是它得以流行的主要原因。
(1)負載均衡策略
1.?RoundRobinRule:輪詢策略。輪詢選擇,輪詢下標,選擇下標對應位置的Serv
柚子快報激活碼778899分享:java Ribbon總結(jié)
好文鏈接
本文內(nèi)容根據(jù)網(wǎng)絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。