Ribbon:Spring Cloud負載均衡與服務(wù)調(diào)用組件
問題總結(jié)
- 負載均衡?
- Ribbon實現(xiàn)服務(wù)調(diào)用?
- Ribbon實現(xiàn)負載均衡?
- 切換負載均衡策略?
-
定制負載均衡策略?
問題答案
-
負載均衡
負載均衡(Load Balance),將用戶的請求平分到多個服務(wù)器上運行,以擴展服務(wù)器帶寬、增強數(shù)據(jù)處理能力、增加吞吐量、提高網(wǎng)絡(luò)的可用性和靈活性的目的。
- 服務(wù)端負載均衡
-
服務(wù)端負載均衡:在客戶端和服務(wù)端之間建立一個負載均衡服務(wù)器(硬件設(shè)備:F5,軟件:Nginx)。負載均衡服務(wù)器維護了一份可用服務(wù)端清單,然后通過心跳機制來刪除故障的服務(wù)端節(jié)點,以保證清單中的所有服務(wù)節(jié)點都是可以正常訪問。
-
客戶端發(fā)送請求,全部交給負載均衡服務(wù)器(輪詢、隨機),選擇一個服務(wù)端進行轉(zhuǎn)發(fā)。、
-
特點:
(1)需要建立一個獨立的負載均衡服務(wù)器。
(2)負載均衡在客戶端發(fā)送請求后進行,客戶端不知道那個服務(wù)器提供服務(wù)。
(3)可用服務(wù)端清單存儲于負載均衡服務(wù)器中。
- 客戶端負載均衡
文章來源:http://www.zghlxwxcb.cn/news/detail-774399.html
- 客戶端負載均衡是將負載均衡邏輯以代碼的形式封裝到客戶端上??蛻舳藦姆?wù)注冊中心獲取服務(wù)端列表,并通過(輪詢、隨機)將請求分配給多個服務(wù)提供者。
- 服務(wù)端負載均衡VS客戶端負載均衡
不同點 服務(wù)端負載均衡 客戶端負載均衡 是否需要建立負載均衡服務(wù)器 是 否 是否需要服務(wù)注冊中心 否 是 可用服務(wù)清單存儲位置 負載均衡服務(wù)器上(nginx) 服務(wù)注冊中心 負載均衡的時機 發(fā)送請求,再進行負載均衡 先負載均衡,再發(fā)送請求 客戶端是否了解服務(wù)提供方消息 否 是
-
Ribbon實現(xiàn)服務(wù)調(diào)用
- Ribbon可以與RestTemplate配合使用,以實現(xiàn)微服務(wù)之間的調(diào)用。
- RestTemplate是一個用于消費第三方的請求框架,實現(xiàn)了對HTTP請求的封裝。例如HEAD、GET、POST、PUT、DELETE等類型的HTTP請求,分別對應(yīng)RestTemplate中的headForHeaders()、getForObject()、postForObject()、put()、delete()方法。
- Ribbon實現(xiàn)負載均衡
Spring Cloud Ribbon提供了一個IRule接口,用于定義負載均衡策略。文章來源地址http://www.zghlxwxcb.cn/news/detail-774399.html
序號 | 實現(xiàn)類 | 負載均衡策略 |
---|---|---|
1 | RoundRobinRule | 排序輪詢 |
2 | RandomRule | 隨機選取 |
3 | RetryRule | 先輪詢,如果獲取到的服務(wù)實例為null或已經(jīng)失效,則再指定時間內(nèi)不斷地進行輪詢重試,超過指定時間沒有獲取到則返回null |
4 | WeighedResponseTimeRule | RoundRobinRule的一個子類,對父類進行了擴展。根據(jù)平均響應(yīng)時間,計算所以服務(wù)實例的權(quán)重,響應(yīng)時間和服務(wù)實例的權(quán)重、選中概率成反比。剛啟動,統(tǒng)計信息不足,使用輪詢 |
5 | BestAvailableRule | 先過濾掉故障或者失效的服務(wù)實例,選擇并發(fā)量最小的服務(wù)實例 |
6 | AvailabilityFilteringRule | 同BestAvailableRule |
7 | ZoneAvoidanceRule | 默認,根據(jù)服務(wù)所在區(qū)域的性能和服務(wù)的可用性,來選擇服務(wù)實例(輪詢) |
- 切換負載均衡策略
- 再客戶端的配置類中,將IRule的其他實現(xiàn)類注入到容器中即可。
- 定制負載均衡策略
- 類似于4
到了這里,關(guān)于Ribbon:Spring Cloud負載均衡與服務(wù)調(diào)用組件的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!