国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

sping-cloud-ribbon原理解析

MartinHan / 2736人閱讀

摘要:是一個(gè)客戶端負(fù)載均衡器,它可以很好地控制和客戶端的行為。根據(jù)響應(yīng)時(shí)間分配一個(gè),響應(yīng)時(shí)間越長(zhǎng),越小,被選中的可能性越低。

Ribbon是一個(gè)客戶端負(fù)載均衡器,它可以很好地控制HTTP和TCP客戶端的行為。Feign已經(jīng)默認(rèn)使用了Ribbon(參考文章)

一、先來(lái)看看ribbon的幾個(gè)核心類

1、IClientConfig 默認(rèn)實(shí)現(xiàn)類DefaultClientConfigImpl,主要用來(lái)配置ribbon客戶端的相關(guān)屬性配置

2、ServerListUpdater默認(rèn)實(shí)現(xiàn)類PollingServerListUpdater,主要負(fù)責(zé)動(dòng)態(tài)更新服務(wù)器列表

start方法調(diào)用后會(huì)啟動(dòng)一個(gè)定時(shí)任務(wù),延時(shí)1s開(kāi)始執(zhí)行,以每30s的時(shí)間間隔周期執(zhí)行

周期時(shí)間間隔可以通過(guò)ribbon.ServerListRefreshInterval=1000或者ribbonClientName.ribbon.ServerListRefreshInterval=1000來(lái)設(shè)置

start方法的啟動(dòng)由DynamicServerListLoadBalancer初始化的時(shí)候執(zhí)行調(diào)用

3、ServerList獲取服務(wù)器列表

默認(rèn)實(shí)現(xiàn)類ConfigurationBasedServerList,默認(rèn)是從配置文件取服務(wù)器列表,這樣配置[ribbonClinetName].ribbon.listOfServers=xxx,xxx

ConsulServerList引入consul作服務(wù)發(fā)現(xiàn)的實(shí)現(xiàn)類,主要負(fù)責(zé)獲取注冊(cè)中心的服務(wù)器列表

備注:可以通過(guò)配置來(lái)擴(kuò)展自己的ServerList實(shí)現(xiàn),像這樣:[ribbonClient].ribbon.NIWSServerListClassName=類名

4、ServerListFilter服務(wù)器列表過(guò)濾器

默認(rèn)實(shí)現(xiàn)類ZonePreferenceServerListFilter主要根據(jù)分區(qū)來(lái)過(guò)濾服務(wù)器列表

HealthServiceServerListFilter引入consul服務(wù)發(fā)現(xiàn)的實(shí)現(xiàn)類,主要負(fù)責(zé)過(guò)濾consul健康檢查通過(guò)的服務(wù)器列表(在ConsulServerList中會(huì)獲取所有的服務(wù)器列表,包括健康檢查沒(méi)有通過(guò)的服務(wù)器)

備注:可以通過(guò)配置來(lái)擴(kuò)展自己的ServerList實(shí)現(xiàn),像這樣[ribbonClient].ribbon.NIWSServerListFilterClassName=類名

5、IPing檢查服務(wù)器是否或者

默認(rèn)實(shí)現(xiàn)DummyPing,這是一個(gè)假的檢測(cè)著,永遠(yuǎn)返回是true

ConsulPing,引入consul服務(wù)發(fā)現(xiàn)的實(shí)現(xiàn)類,主要根據(jù)consul返回的checks參數(shù)來(lái)判斷服務(wù)器是否活著,跟HealthServiceServerListFilter的過(guò)濾判斷一樣

備注:可以通過(guò)配置來(lái)擴(kuò)展自己的ServerList實(shí)現(xiàn),像這樣:[ribbonClient].ribbon.NFLoadBalancerPingClassName=類名

6、IRule負(fù)載均衡選擇器

默認(rèn)實(shí)現(xiàn)ZoneAvoidanceRule,復(fù)合判斷server所在區(qū)域的性能和server的可用性選擇server

RandomRule:隨機(jī)選擇一個(gè)server

RoundRobinRule:roundRobin方式輪詢選擇server

RetryRule:對(duì)選定的負(fù)載均衡策略機(jī)上重試機(jī)制。

WeightedResponseTimeRule:根據(jù)響應(yīng)時(shí)間分配一個(gè)weight,響應(yīng)時(shí)間越長(zhǎng),weight越小,被選中的可能性越低。

AvailabilityFilteringRule:過(guò)濾掉那些因?yàn)橐恢边B接失敗的被標(biāo)記為circuit tripped的后端server,并過(guò)濾掉那些高并發(fā)的的后端server(active connections 超過(guò)配置的閾值)

BestAvailableRule:選擇一個(gè)最小的并發(fā)請(qǐng)求的server

7、ILoadBalancer負(fù)載均衡總控制器,默認(rèn)實(shí)現(xiàn)類ZoneAwareLoadBalancer,其啟動(dòng)了整個(gè)負(fù)載均衡客戶端

可以通過(guò)配置來(lái)擴(kuò)展自己的ServerList實(shí)現(xiàn),像這樣:[ribbonClient].ribbon.NFLoadBalancerClassName=類名

負(fù)載均衡器啟動(dòng)時(shí)序圖:

初始化時(shí)首先會(huì)初始化一個(gè)定時(shí)任務(wù),每隔30s執(zhí)行一次,緩存里面會(huì)保存所有從注冊(cè)中心獲取實(shí)例列表allServerList和經(jīng)過(guò)ping成功的實(shí)例列表upServerList,但是負(fù)載均衡的時(shí)候拿到的列表是allServerList而非upServerList,不明白這個(gè)ping的意義在哪里

啟動(dòng)一個(gè)定時(shí)任務(wù),定時(shí)從注冊(cè)中心拉取服務(wù)列表,每個(gè)30s執(zhí)行一次

初始化獲取服務(wù)列表,拉取到的服務(wù)列表經(jīng)過(guò)ServiceFilter過(guò)濾后保存在緩存里面

當(dāng)客戶端發(fā)起調(diào)用的時(shí)候會(huì)調(diào)用ILoadBalancer的chooseServer方法,根據(jù)IRule的負(fù)載均衡算法選擇一個(gè)實(shí)例返回給調(diào)用者.

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/76593.html

相關(guān)文章

  • 瀏覽器工作原理整理

    摘要:每種可被解析的格式必須具有由詞匯及語(yǔ)法規(guī)則組成的特定的文法,稱為上下文無(wú)關(guān)文法。解析解析器,每個(gè)標(biāo)識(shí)都有特定的正則進(jìn)行解析。開(kāi)發(fā)者可以將腳本標(biāo)識(shí)為,以使其不阻塞文檔解析,并在文檔解析結(jié)束后執(zhí)行。 瀏覽器組成 用戶界面-地址欄、按鈕之類的 瀏覽器引擎-用來(lái)查詢及操作渲染引擎的接口 渲染引擎-顯示請(qǐng)求的內(nèi)容 網(wǎng)絡(luò)-進(jìn)行網(wǎng)絡(luò)請(qǐng)求 ui后端-用來(lái)滬指選擇框、對(duì)話框的基本組件 js解析器 數(shù)據(jù)...

    hqman 評(píng)論0 收藏0
  • 瀏覽器工作原理整理

    摘要:每種可被解析的格式必須具有由詞匯及語(yǔ)法規(guī)則組成的特定的文法,稱為上下文無(wú)關(guān)文法。解析解析器,每個(gè)標(biāo)識(shí)都有特定的正則進(jìn)行解析。開(kāi)發(fā)者可以將腳本標(biāo)識(shí)為,以使其不阻塞文檔解析,并在文檔解析結(jié)束后執(zhí)行。 瀏覽器組成 用戶界面-地址欄、按鈕之類的 瀏覽器引擎-用來(lái)查詢及操作渲染引擎的接口 渲染引擎-顯示請(qǐng)求的內(nèi)容 網(wǎng)絡(luò)-進(jìn)行網(wǎng)絡(luò)請(qǐng)求 ui后端-用來(lái)滬指選擇框、對(duì)話框的基本組件 js解析器 數(shù)據(jù)...

    Dionysus_go 評(píng)論0 收藏0
  • CDN工作原理

    摘要:通過(guò)以上四個(gè)步驟,瀏覽器完成從用戶處接收用戶要訪問(wèn)的域名到從域名服務(wù)主機(jī)處獲取數(shù)據(jù)的整個(gè)過(guò)程。概念解析指別名記錄也被稱為規(guī)范名字可以理解為對(duì)域名設(shè)置別名。詳細(xì)可以參考一些名詞解釋 傳統(tǒng)的網(wǎng)絡(luò)訪問(wèn)形式為: showImg(http://segmentfault.com/img/bVcqjG); 由上圖可見(jiàn),用戶訪問(wèn)未使用CDN緩存網(wǎng)站的過(guò)程為: 用戶向?yàn)g覽器提供要訪問(wèn)的域名; 瀏...

    zhonghanwen 評(píng)論0 收藏0
  • 【進(jìn)階3-5期】深度解析 new 原理及模擬實(shí)現(xiàn)

    摘要:使用指定的參數(shù)調(diào)用構(gòu)造函數(shù),并將綁定到新創(chuàng)建的對(duì)象。由構(gòu)造函數(shù)返回的對(duì)象就是表達(dá)式的結(jié)果。情況返回以外的基本類型實(shí)例中只能訪問(wèn)到構(gòu)造函數(shù)中的屬性,和情況完全相反,結(jié)果相當(dāng)于沒(méi)有返回值。 定義 new 運(yùn)算符創(chuàng)建一個(gè)用戶定義的對(duì)象類型的實(shí)例或具有構(gòu)造函數(shù)的內(nèi)置對(duì)象的實(shí)例。 ——(來(lái)自于MDN) 舉個(gè)栗子 function Car(color) { this.color = co...

    Baaaan 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<