成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

dubbo服務(wù)的集群擴(kuò)展、目錄服務(wù)、路由規(guī)則、負(fù)載均衡

shery / 2449人閱讀

摘要:集群擴(kuò)展當(dāng)有多個(gè)服務(wù)提供方時(shí),將多個(gè)服務(wù)提供方組織成一個(gè)集群,并偽裝成一個(gè)提供方。目錄服務(wù)的頭部注釋中,引用做了一個(gè)介紹。路由規(guī)則負(fù)責(zé)從多個(gè)中按路由規(guī)則選出子集,比如按照讀寫(xiě)分離應(yīng)用隔離等。若處理完畢則計(jì)數(shù)器減。

1. Cluster-集群擴(kuò)展

當(dāng)有多個(gè)服務(wù)提供方時(shí),將多個(gè)服務(wù)提供方組織成一個(gè)集群,并偽裝成一個(gè)提供方。已知的實(shí)現(xiàn)如下,

1-1. FailoverCluster(默認(rèn)的)

失敗轉(zhuǎn)移,當(dāng)出現(xiàn)失敗,重試其它服務(wù)器,通常用于讀操作,但重試會(huì)帶來(lái)更長(zhǎng)延遲。

1-2. AvailableCluster

獲取可用的調(diào)用。遍歷所有Invokers判斷Invoker.isAvalible,只要一個(gè)有為true直接調(diào)用返回,不管成不成功。

1-3. BroadcastCluster

挨個(gè)調(diào)用集群中所有的providers,通常用于通知所有的服務(wù)提供者更新某些資源,例如緩存、日志。

1-4. FailbackCluster

失敗自動(dòng)恢復(fù),后臺(tái)記錄失敗請(qǐng)求,定時(shí)重發(fā),通常用于消息通知操作。

1-5. FailfastCluster

快速失敗,只發(fā)起一次調(diào)用,失敗立即報(bào)錯(cuò),通常用于非冪等性的寫(xiě)操作。

1-6. ForkingCluster

并行調(diào)用,只要一個(gè)成功即返回,通常用于實(shí)時(shí)性要求較高的操作,但需要浪費(fèi)更多服務(wù)資源。

1-7. MergeableCluster

按組合并返回結(jié)果,比如菜單服務(wù),接口一樣,但有多種實(shí)現(xiàn),用group區(qū)分,現(xiàn)在消費(fèi)者需從每種group中調(diào)用一次返回結(jié)果,合并結(jié)果返回,這樣就可以實(shí)現(xiàn)聚合菜單項(xiàng)。

2. Directory-目錄服務(wù)

Directory.java的頭部注釋中,引用http://en.wikipedia.org/wiki/... service做了一個(gè)介紹。directory service有點(diǎn)陌生,但是name service應(yīng)該比較熟悉吧,就是命名服務(wù)。 每一個(gè)name service都映射了網(wǎng)絡(luò)中的一種資源。
這里面一個(gè)Directory就代表一個(gè)provider提供的List,但是這個(gè)List可能是動(dòng)態(tài)變化的,比如注冊(cè)中心的推送變更。
Cluster將Directory中的多個(gè)Invoker偽裝成一個(gè)Invoker,對(duì)上層透明,偽裝過(guò)程包含了容錯(cuò)邏輯,調(diào)用失敗后,重試另一個(gè)。

2-1. RegistryDirectory

注冊(cè)目錄服務(wù),它的Invoker集合是從注冊(cè)中心獲取的,比如消費(fèi)方要調(diào)用某遠(yuǎn)程服務(wù),會(huì)向注冊(cè)中心訂閱這個(gè)服務(wù)的所有服務(wù)提供方,訂閱時(shí)和服務(wù)提供方數(shù)據(jù)有變動(dòng)時(shí),會(huì)回調(diào)消費(fèi)方的回調(diào)接口并傳入服務(wù)的所有提供方的url地址,然后將urls地址轉(zhuǎn)為為invokers,也就是refer遠(yuǎn)程服務(wù)。

2-2. StaticDirectory

靜態(tài)目錄服務(wù), 它的所有Invoker通過(guò)構(gòu)造函數(shù)傳入。

3. Router-路由規(guī)則

Router 負(fù)責(zé)從多個(gè)Invoker中按路由規(guī)則選出子集,比如按照讀寫(xiě)分離、應(yīng)用隔離等。

4. LoadBalance-負(fù)載均衡

LoadBalance 負(fù)責(zé)從多個(gè)Invoker中選出具體的一個(gè)用于本次調(diào)用,選的過(guò)程包含了負(fù)載均衡算法,調(diào)用失敗后,需要重選。

4-1. RandomLoadBalance(默認(rèn)的)

隨機(jī),按權(quán)重設(shè)置隨機(jī)概率。
在一個(gè)截面上碰撞的概率高,但調(diào)用量越大分布越均勻,而且按概率使用權(quán)重后也比較均勻,有利于動(dòng)態(tài)調(diào)整提供者權(quán)重。

4-2. RoundRobinLoadBalance

輪循,按公約后的權(quán)重設(shè)置輪循比率。
存在慢的提供者累積請(qǐng)求問(wèn)題,比如:第二臺(tái)機(jī)器很慢,但沒(méi)掛,當(dāng)請(qǐng)求調(diào)到第二臺(tái)時(shí)就卡在那,久而久之,所有請(qǐng)求都卡在調(diào)到第二臺(tái)上。

4-3. LeastActiveLoadBalance

最少活躍調(diào)用數(shù),相同活躍數(shù)的隨機(jī),活躍數(shù)指調(diào)用前后計(jì)數(shù)差,使慢的機(jī)器收到更少
例如,每個(gè)服務(wù)維護(hù)一個(gè)活躍數(shù)計(jì)數(shù)器。當(dāng)A機(jī)器開(kāi)始處理請(qǐng)求,該計(jì)數(shù)器加1,此時(shí)A還未處理完成。若處理完畢則計(jì)數(shù)器減1。而B(niǎo)機(jī)器接受到請(qǐng)求后很快處理完畢。那么A,B的活躍數(shù)分別是1,0。當(dāng)又產(chǎn)生了一個(gè)新的請(qǐng)求,則選擇B機(jī)器去執(zhí)行(B活躍數(shù)最小),這樣使慢的機(jī)器A收到少的請(qǐng)求。

4-4. ConsistentHashLoadBalance

一致性Hash,相同參數(shù)的請(qǐng)求總是發(fā)到同一提供者。
當(dāng)某一臺(tái)提供者掛時(shí),原本發(fā)往該提供者的請(qǐng)求,基于虛擬節(jié)點(diǎn),平攤到其它提供者,不會(huì)引起劇烈變動(dòng)。
算法參見(jiàn):http://en.wikipedia.org/wiki/...。
缺省只對(duì)第一個(gè)參數(shù)Hash,如果要修改,請(qǐng)配置
缺省用160份虛擬節(jié)點(diǎn),如果要修改,請(qǐng)配置

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

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

相關(guān)文章

  • dubbo源碼解析(一)Hello,Dubbo

    摘要:英文全名為,也叫遠(yuǎn)程過(guò)程調(diào)用,其實(shí)就是一個(gè)計(jì)算機(jī)通信協(xié)議,它是一種通過(guò)網(wǎng)絡(luò)從遠(yuǎn)程計(jì)算機(jī)程序上請(qǐng)求服務(wù)而不需要了解底層網(wǎng)絡(luò)技術(shù)的協(xié)議。 Hello,Dubbo 你好,dubbo,初次見(jiàn)面,我想和你交個(gè)朋友。 Dubbo你到底是什么? 先給出一套官方的說(shuō)法:Apache Dubbo是一款高性能、輕量級(jí)基于Java的RPC開(kāi)源框架。 那么什么是RPC? 文檔地址:http://dubbo.a...

    evin2016 評(píng)論0 收藏0
  • 服務(wù)框架 | 潮流當(dāng)前該如何選擇 SpringCloud、Dubbo or Istio?

    摘要:目前首個(gè)測(cè)試版是針對(duì)環(huán)境的,社區(qū)宣稱在未來(lái)幾個(gè)月內(nèi)會(huì)為虛擬機(jī)和等其他環(huán)境增加支持。查看下在上的更新時(shí)間,截止年月日所有項(xiàng)目均更新于小時(shí)內(nèi)。核心項(xiàng)目最近更新于一個(gè)月乃至數(shù)月前。所有項(xiàng)目均更新于分鐘內(nèi)。目前對(duì)比來(lái)看,則顯得稍遜下來(lái)。 showImg(https://segmentfault.com/img/remote/1460000010953149); 在 Kubernetes 容器云...

    k00baa 評(píng)論0 收藏0
  • 聊聊 Apache Dubbo

    摘要:架構(gòu)中有兩個(gè)主要角色服務(wù)提供者和服務(wù)使用者。服務(wù)提供者在啟動(dòng)時(shí),向注冊(cè)中心注冊(cè)自己提供的服務(wù)。負(fù)載平衡旨在優(yōu)化資源使用,最大化吞吐量,最小化響應(yīng)時(shí)間,并避免任何單個(gè)資源的過(guò)載。 本文來(lái)自于我的個(gè)人主頁(yè):Apache Dubbo,轉(zhuǎn)載請(qǐng)保留鏈接 ;) 在2011年10月27日,阿里巴巴開(kāi)源了自己的SOA服務(wù)化治理方案的核心框架Dubbo,服務(wù)治理和SOA的設(shè)計(jì)理念開(kāi)始逐漸在國(guó)內(nèi)軟件行業(yè)中...

    XFLY 評(píng)論0 收藏0
  • dubbo源碼解析——概要篇

    摘要:服務(wù)提供者代碼上面這個(gè)類會(huì)被封裝成為一個(gè)實(shí)例,并新生成一個(gè)實(shí)例。這樣當(dāng)網(wǎng)絡(luò)通訊層收到一個(gè)請(qǐng)求后,會(huì)找到對(duì)應(yīng)的實(shí)例,并調(diào)用它所對(duì)應(yīng)的實(shí)例,從而真正調(diào)用了服務(wù)提供者的代碼。 這次源碼解析借鑒《肥朝》前輩的dubbo源碼解析,進(jìn)行源碼學(xué)習(xí)。總結(jié)起來(lái)就是先總體,后局部.也就是先把需要注意的概念先拋出來(lái),把整體架構(gòu)圖先畫(huà)出來(lái).讓讀者拿著地圖跟著我的腳步,并且每一步我都提醒,現(xiàn)在我們?cè)谀?我們下一...

    Meathill 評(píng)論0 收藏0
  • 構(gòu)建springmvc+myabtis+dubbo分布式平臺(tái)-dubbo簡(jiǎn)介

    摘要:服務(wù)自動(dòng)注冊(cè)與發(fā)現(xiàn),不再需要寫(xiě)死服務(wù)提供方地址,注冊(cè)中心基于接口名查詢服務(wù)提供者的地址,并且能夠平滑添加或刪除服務(wù)提供者。調(diào)用關(guān)系說(shuō)明服務(wù)容器負(fù)責(zé)啟動(dòng),加載,運(yùn)行服務(wù)提供者。服務(wù)提供者在啟動(dòng)時(shí),向注冊(cè)中心注冊(cè)自己提供的服務(wù)。 上一篇我們介紹《構(gòu)建dubbo分布式平臺(tái)-maven構(gòu)建ant-utils工具包的構(gòu)建》,從今天開(kāi)始,我們進(jìn)入分布式服務(wù)項(xiàng)目的核心教程,真正使用dubbo實(shí)現(xiàn)分布...

    鄒立鵬 評(píng)論0 收藏0

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

0條評(píng)論

shery

|高級(jí)講師

TA的文章

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