亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

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

shery / 2445人閱讀

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

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

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

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

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

1-2. AvailableCluster

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

1-3. BroadcastCluster

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

1-4. FailbackCluster

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

1-5. FailfastCluster

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

1-6. ForkingCluster

并行調(diào)用,只要一個成功即返回,通常用于實(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做了一個介紹。directory service有點(diǎn)陌生,但是name service應(yīng)該比較熟悉吧,就是命名服務(wù)。 每一個name service都映射了網(wǎng)絡(luò)中的一種資源。
這里面一個Directory就代表一個provider提供的List,但是這個List可能是動態(tài)變化的,比如注冊中心的推送變更。
Cluster將Directory中的多個Invoker偽裝成一個Invoker,對上層透明,偽裝過程包含了容錯邏輯,調(diào)用失敗后,重試另一個。

2-1. RegistryDirectory

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

2-2. StaticDirectory

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

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

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

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

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

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

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

4-2. RoundRobinLoadBalance

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

4-3. LeastActiveLoadBalance

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

4-4. ConsistentHashLoadBalance

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

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

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/71571.html

相關(guān)文章

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

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

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

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

    k00baa 評論0 收藏0
  • 聊聊 Apache Dubbo

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

    XFLY 評論0 收藏0
  • dubbo源碼解析——概要篇

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

    Meathill 評論0 收藏0
  • 構(gòu)建springmvc+myabtis+dubbo分布式平臺-dubbo簡介

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

    鄒立鵬 評論0 收藏0

發(fā)表評論

0條評論

shery

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<