fourinone分布式協(xié)調(diào)設(shè)計(jì)解析

fourinone分布式協(xié)調(diào)設(shè)計(jì)解析

ID:5636806

大?。?8.00 KB

頁(yè)數(shù):7頁(yè)

時(shí)間:2017-12-20

fourinone分布式協(xié)調(diào)設(shè)計(jì)解析_第1頁(yè)
fourinone分布式協(xié)調(diào)設(shè)計(jì)解析_第2頁(yè)
fourinone分布式協(xié)調(diào)設(shè)計(jì)解析_第3頁(yè)
fourinone分布式協(xié)調(diào)設(shè)計(jì)解析_第4頁(yè)
fourinone分布式協(xié)調(diào)設(shè)計(jì)解析_第5頁(yè)
資源描述:

《fourinone分布式協(xié)調(diào)設(shè)計(jì)解析》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、fourinone分布式協(xié)調(diào)設(shè)計(jì)解析分布式協(xié)同是分布式應(yīng)用中不可缺少的,通常擔(dān)任協(xié)調(diào)者的角色,或者說(shuō)是將多機(jī)協(xié)同的職責(zé)從分布式應(yīng)用中獨(dú)立出來(lái),以減少系統(tǒng)的耦合性和增強(qiáng)擴(kuò)充性。Apache的Zookeeper,google的Chubby都是分布式協(xié)同的實(shí)現(xiàn)者。fourinone實(shí)際上可以單獨(dú)當(dāng)做Zookeeper用,它使用最少的代碼實(shí)現(xiàn)了Zookeeper的所有功能,并且力圖做到功能更強(qiáng)但是使用更簡(jiǎn)潔。一、實(shí)現(xiàn)原理fourinone對(duì)分布式協(xié)同的實(shí)現(xiàn),是通過(guò)建立一個(gè)domain,node兩層結(jié)構(gòu)的節(jié)點(diǎn)信息去完成,domain可以是分類或者包,node可以是具體屬性,domain和nod

2、e都是自己根據(jù)需求設(shè)計(jì)命名,比如可以將domain命名為“a.b.c...”表示一個(gè)樹型類目。一個(gè)domain下可以有很多個(gè)node,每個(gè)node只指定一個(gè)domain,可以通過(guò)domain返回它下面所有的node。domain不需要單獨(dú)建立,通常在建立node時(shí),如果不存在domain會(huì)自動(dòng)創(chuàng)建。如果domain下沒有node了,該domain會(huì)自動(dòng)刪除。如果刪除domain,該domain下面node也都會(huì)刪除。每個(gè)node下可以存放一個(gè)值,可以是任意對(duì)象。所有的節(jié)點(diǎn)信息存放在parkserver里,parkserver提供協(xié)同者的功能。如下圖所示:從上圖可以看到,其他分布式進(jìn)程

3、可以通過(guò)parkserver的用戶接口ParkLocal,對(duì)節(jié)點(diǎn)進(jìn)行增加、修改、刪除、指定心跳、指定權(quán)限等操作,并且結(jié)合parkserver提供同步備份、領(lǐng)導(dǎo)者選舉、過(guò)期時(shí)間設(shè)置等功能,共同來(lái)實(shí)現(xiàn)眾多分布式協(xié)同功能,比如:1、分布式配置,多個(gè)機(jī)器的應(yīng)用公用一個(gè)配置信息,并且掛掉能夠領(lǐng)導(dǎo)者選舉,詳細(xì)見指南和demo2、分布式鎖,多個(gè)機(jī)器競(jìng)爭(zhēng)一個(gè)鎖,當(dāng)某個(gè)機(jī)器釋放鎖或者掛掉,其他機(jī)器可以競(jìng)爭(zhēng)到鎖繼續(xù),詳細(xì)見指南和demo3、集群管理,集群內(nèi)機(jī)器可以互相感知和領(lǐng)導(dǎo)者選舉,詳見指南和demo二、核心APIParkLocal核心api說(shuō)明://創(chuàng)建node,可以根據(jù)是否需要權(quán)限和心跳屬性調(diào)用不

4、同方法publicObjectBeancreate(Stringdomain,Serializableobj);//自動(dòng)創(chuàng)建nodepublicObjectBeancreate(Stringdomain,Stringnode,Serializableobj);publicObjectBeancreate(Stringdomain,Stringnode,Serializableobj,AuthPolicyauth);publicObjectBeancreate(Stringdomain,Stringnode,Serializableobj,booleanheartbeat);publi

5、cObjectBeancreate(Stringdomain,Stringnode,Serializableobj,AuthPolicyauth,booleanheartbeat);//更新nodepublicObjectBeanupdate(Stringdomain,Stringnode,Serializableobj);//獲取nodepublicObjectBeanget(Stringdomain,Stringnode);//獲取最新node,需要傳入舊node進(jìn)行對(duì)照publicObjectBeangetLastest(Stringdomain,Stringnode,Obje

6、ctBeanob);//獲取最新domainpublicListget(Stringdomain);//獲取最新domain下所有node,需要傳入舊的node集合對(duì)照publicListgetLastest(Stringdomain,Listoblist);//刪除nodepublicObjectBeandelete(Stringdomain,Stringnode);//強(qiáng)行設(shè)置domain可刪除publicbooleansetDeletable(Stringdomain);//刪除domain及下所有node

7、publicListdelete(Stringdomain);//添加node的事件監(jiān)聽publicvoidaddLastestListener(Stringdomain,Stringnode,ObjectBeanob,LastestListenerliser);//添加domain的事件監(jiān)聽publicvoidaddLastestListener(Stringdomain,Listoblist,Lastes

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。