负载均衡器 Ribbion
生活随笔
收集整理的這篇文章主要介紹了
负载均衡器 Ribbion
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前面我們在講解Eureka的時候談到了,服務端發現和客戶端發現,Eureka是屬于客戶端發現的方式,他的負載均衡是軟負載,也就是客戶端服務器,比如Eureka Server,拉取已注冊的服務信息,然后根據負載均衡策略,直接發送請求,這整個過程都是在客戶端完成的,并不需要服務器的參與,SpringCloud中客戶端負載均衡,都是Ribbon組件,它是基于Netflix Ribbon實現的,通過SpringCloud的封裝,可以輕松地面向服務的Rest服務請求,自動轉換成客戶端,負載均衡服務調用,RestTemplate,Feign,以及后面我們要講解到的網關服務,Zuul都使用到了Ribbon,SpringCloud在結合了Ribbon的負載均衡的實現中,封裝增加了HTTP Client,和OKHttp,兩種實現,默認使用Ribbon對Eureka服務發現的負載均衡,我們介紹了RestTempalte的三種實現方式,其中通過添加@LoadBalanced注解,或者直接寫代碼的時候使用,@LoadBalanced,其實用到的就是Ribbon的組件,添加@LoadBalanced注解后,Ribbon會通過@LoadBalanced自動幫助你基于某種規則,比如簡單的輪詢,隨機連接,去連接目標服務,從而很容易的實現負載均衡的算法,Ribbon實現負載均衡,核心有三點,第一是服務發現,也就是發現服務的列表,就是依據服務的名字,把該服務下所有的實例,都找出來,第二點是服務選擇規則,依據規則策略,如何從一個服務中選擇一個有效的,最后一點是服務監聽,也就是檢測失效的服務,做到高效剔除
他的主要組件有ServerList,IRule,ServerListFilter等,他的整個流程是這樣子的,首先,通過ServerList,獲取所有的可用服務列表,然后通過ServerListFilter,過濾掉一部分地址,最后剩下的地址中,通過IRule選擇一個實例,作為最終目標結果,這么說大家可能會覺得比較空洞
?
總結
以上是生活随笔為你收集整理的负载均衡器 Ribbion的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RestTemplate的三种使用方式
- 下一篇: 追踪源码自定义负载均衡策略