999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Zookeeper的分布式ICE中間件研究①

2019-01-07 02:41:24馮戰(zhàn)勝劉穎娜
關(guān)鍵詞:服務(wù)

馮戰(zhàn)勝,張 激,彭 宏,劉穎娜

(華東計(jì)算技術(shù)研究所,上海 201808)

在互聯(lián)網(wǎng)大行其道的今天,各種分布式系統(tǒng)已經(jīng)司空見(jiàn)慣.搜索引擎、電商網(wǎng)站、微博、微信、O2O平臺(tái)等,凡是涉及到大規(guī)模用戶、高并發(fā)訪問(wèn)的,無(wú)一不是分布式[1].RPC作為分布式架構(gòu)的核心,一旦出現(xiàn)問(wèn)題,整個(gè)分布式網(wǎng)絡(luò)就會(huì)出現(xiàn)癱瘓,RPC框架必須做到高可用才能保證分布式網(wǎng)絡(luò)的穩(wěn)定.ICE中間件作為一款跨語(yǔ)言開(kāi)發(fā)的RPC框架,因其高效的性能和完整的服務(wù),被惠普等大型企業(yè)所采用.

Zookeeper是開(kāi)放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),許多分布式軟件都采用Zookeeper作為集群[2]管理,Zookeeper本身也支持高可用,隨著軟件版本的更新,Zookeeper的高效與穩(wěn)定很適合作為分布式環(huán)境下的高可用服務(wù)[3].

1 Zookeeper技術(shù)簡(jiǎn)介

Zookeeper是Hadoop的正式子項(xiàng)目,是一個(gè)高效可靠的開(kāi)源的分布式協(xié)調(diào)服務(wù)框架,由知名互聯(lián)網(wǎng)公司雅虎創(chuàng)建,是Google公司的分布式服務(wù)框架Chubby的開(kāi)源實(shí)現(xiàn).在分布式環(huán)境下,Zookeeper可以保證順序一致性,原子性,可靠性和實(shí)時(shí)性.

Zookeeper本質(zhì)上是一個(gè)分布式的小文件存儲(chǔ)系統(tǒng),具有下述應(yīng)用特性:

(1)簡(jiǎn)單.Zookeeper允許通過(guò)分布式程序共享方式,組織成類似標(biāo)準(zhǔn)文件系統(tǒng)層級(jí)命名空間協(xié)調(diào)的分布式程序.這個(gè)命名空間包含類似文件和目錄的數(shù)據(jù)寄存器,不像典型的用于存儲(chǔ)的文件系統(tǒng).Zookeeper的數(shù)據(jù)保存在內(nèi)存中,可實(shí)現(xiàn)高吞吐量和低延遲訪問(wèn).

(2)冗余.Zookeeper本身和其自身協(xié)調(diào)的程序一樣,設(shè)計(jì)為冗余的,在擁有許多主機(jī)集合的主機(jī)組上運(yùn)行.組成Zookeeper服務(wù)群的所有服務(wù)器都已知對(duì)方,只要所有服務(wù)器中的主服務(wù)器可用,Zookeeper服務(wù)就是可用的.客戶端鏈接的一個(gè)Zookeeper服務(wù)器通過(guò)發(fā)送請(qǐng)求、獲取響應(yīng)、監(jiān)聽(tīng)事件、發(fā)送心跳維持一個(gè)TCP(傳輸控制協(xié)議)鏈接,如果鏈接中斷,客戶端將連接到另外一個(gè)服務(wù)器

(3)有序.Zookeeper用一個(gè)反映所有 Zookeeper事務(wù)順序的數(shù)字,標(biāo)記每一個(gè)更新.以后的操作可以使用這個(gè)順序數(shù)字標(biāo)記.

(4)快速.Zookeeper在讀取占主要地位的負(fù)載環(huán)境下,在讀取操作比寫入操作更頻繁的情況下,讀取速度非常快.

(5)豐富的 API(應(yīng)用程序編程接口).Zookeeper為開(kāi)發(fā)人員提供了一套豐富的API,減輕了開(kāi)發(fā)人員編寫通用協(xié)議的負(fù)擔(dān)[4].

1.1 Zookeeper的配置管理

程序在啟動(dòng)運(yùn)行中總是需要配置文件,如果程序分散部署在多臺(tái)機(jī)器上,要逐個(gè)改變所在機(jī)器的配置文件就變得困難.現(xiàn)在可以把這些配置全部放到Zookeeper上去,保存在Zookeeper的某個(gè)目錄節(jié)點(diǎn)中,然后所有相關(guān)應(yīng)用程序?qū)@個(gè)目錄節(jié)點(diǎn)進(jìn)行監(jiān)聽(tīng),一旦配置信息發(fā)生變化,每個(gè)應(yīng)用程序就會(huì)收到Zookeeper的通知,然后從Zookeeper獲取新的配置信息應(yīng)用到系統(tǒng)中[5].基本過(guò)程如圖1.

圖1 Zookeeper的配置管理

1.2 Zookeeper的集群管理

所有機(jī)器約定在父目錄father下創(chuàng)建臨時(shí)目錄節(jié)點(diǎn),然后Zookeeper監(jiān)聽(tīng)父目錄節(jié)點(diǎn)的子節(jié)點(diǎn)的消息變化.一旦有機(jī)器出現(xiàn)問(wèn)題,該機(jī)器與Zookeeper的連接就會(huì)斷開(kāi),其所創(chuàng)建的臨時(shí)目錄節(jié)點(diǎn)就會(huì)被刪除,所有的其他機(jī)器都會(huì)收到通知.

當(dāng)有新機(jī)器加入,就會(huì)在father父目錄下創(chuàng)建臨時(shí)節(jié)點(diǎn),Zookeeper會(huì)把這個(gè)消息發(fā)送給父目錄下的所有機(jī)器,所有機(jī)器就會(huì)收到新機(jī)器加入的通知.如圖2.

圖2 Zookeeper的集群管理

1.3 Zookeeper的選舉機(jī)制

Zookeeper的角色主要有3類:領(lǐng)導(dǎo)者(leader)、學(xué)習(xí)者(learner)和客戶(client),三者關(guān)系如圖3所示.領(lǐng)導(dǎo)者負(fù)責(zé)處理寫請(qǐng)求和系統(tǒng)狀態(tài)更新請(qǐng)求;學(xué)習(xí)者負(fù)責(zé)接收領(lǐng)導(dǎo)者發(fā)送的請(qǐng)求并對(duì)請(qǐng)求進(jìn)行投票,以及客戶端的讀寫請(qǐng)求;客戶端負(fù)責(zé)通過(guò)TCP鏈接向?qū)W習(xí)者發(fā)送請(qǐng)求和獲取響應(yīng).學(xué)習(xí)者又可細(xì)分為跟隨者(follower)和觀察者 (observer),兩者的區(qū)別為:觀察者只同步領(lǐng)導(dǎo)者的狀態(tài),但不參與領(lǐng)導(dǎo)者失效時(shí)的競(jìng)選和投票[6].

圖3 Zookeeper的角色關(guān)系

當(dāng)領(lǐng)導(dǎo)者失去響應(yīng)時(shí),進(jìn)入恢復(fù)模式(競(jìng)選),某服務(wù)器推薦自己作為領(lǐng)導(dǎo)者,將消息發(fā)送給集群,等待其它服務(wù)器接收該舉薦信息.若同意,向領(lǐng)導(dǎo)者服務(wù)器發(fā)送同意消息;若不同意,重復(fù)自薦流程,直到獲得N/2+1票數(shù)后,才被認(rèn)定為領(lǐng)導(dǎo)者,整個(gè)競(jìng)選流程結(jié)束.具體流程如下:

首先,某臺(tái)服務(wù)器發(fā)起選舉線程,選舉線程向所有服務(wù)器發(fā)起一次詢問(wèn).當(dāng)收到回復(fù),選舉線程驗(yàn)證zxid(Zookeeper transaction ID),判斷是否為自己發(fā)起的詢問(wèn),并獲 取對(duì)方id,同時(shí)保存到此次選舉投票記錄表中.當(dāng)收到所有服務(wù)器回復(fù)后,選舉線程計(jì)算并選出zxid值最大的服務(wù)器,將該服務(wù)器的信息,設(shè)置為被推薦的領(lǐng)導(dǎo)者.被推薦的領(lǐng)導(dǎo)者發(fā)起選舉,向其它服務(wù)器發(fā)送PROPOSAL消息,其它服務(wù)器接收該消息后,進(jìn)行投票;若同意,則發(fā)送 ACK 消息.此時(shí),被推薦的領(lǐng)導(dǎo)者判斷是否有超過(guò)N/2+1的服務(wù)器同意;若超過(guò),則被推薦的領(lǐng)導(dǎo)者獲勝;否則,重復(fù)流程,直到領(lǐng)導(dǎo)者被選出.

1.4 Watcher機(jī)制

客戶端在所關(guān)心的目錄節(jié)點(diǎn)上注冊(cè)Watcher,當(dāng)被監(jiān)聽(tīng)的節(jié)點(diǎn)狀態(tài)發(fā)生變化時(shí)(即數(shù)據(jù)改變、被刪除、子目錄節(jié)點(diǎn)增加或刪除時(shí)),會(huì)觸發(fā)WatchedEvent事件,并發(fā)送給對(duì)其進(jìn)行監(jiān)聽(tīng)的客戶端.Watcher機(jī)制可以保證整個(gè)集群系統(tǒng)中各個(gè)服務(wù)器之間的通信和協(xié)調(diào),實(shí)現(xiàn)對(duì)數(shù)據(jù)變更的實(shí)時(shí)處理.Zookeeper所提供的基本操作包括:create(創(chuàng)建節(jié)點(diǎn))、delete(刪除節(jié)點(diǎn))、setData(設(shè)置節(jié)點(diǎn)數(shù)據(jù))、getData(獲取節(jié)點(diǎn)數(shù)據(jù))、exists(查看節(jié)點(diǎn)是否存在)、以及getChildren(獲取子節(jié)點(diǎn))等.其中,exists、getChildren、getData 操作可以在節(jié)點(diǎn)上注冊(cè) Watcher;而 create,delete,setData 操作可以觸發(fā)設(shè)置在節(jié)點(diǎn)上的Watcher[7].

在該機(jī)制中,服務(wù)端存儲(chǔ)事件的信息,客戶端存儲(chǔ)事件的信息和Watcher的執(zhí)行邏輯.當(dāng)在某節(jié)點(diǎn)上注冊(cè)Watcher事件時(shí),客戶端線程向服務(wù)器注冊(cè)Watcher;同時(shí),在Watcher對(duì)象管理器中存儲(chǔ)Watcher對(duì)象以及對(duì)應(yīng)的節(jié)點(diǎn)路徑.當(dāng)某節(jié)點(diǎn)觸發(fā)Watcher事件時(shí),服務(wù)器向?qū)?yīng)的客戶端發(fā)送通知(包含事件類型和節(jié)點(diǎn)路徑),該客戶端線程從Watcher對(duì)象管理器中根據(jù)映射關(guān)系取出對(duì)應(yīng)的Watcher對(duì)象,執(zhí)行回調(diào)函數(shù).其中,回調(diào)函數(shù)包含WatchEvent類型的參數(shù),該類型參數(shù)(WatchEvent)封裝事件的通知狀態(tài)(keeperState)、事件類型(EventType)和節(jié)點(diǎn)路徑(path),方便回調(diào)函數(shù)對(duì)事件進(jìn)行處理.

2 ICE 中間件簡(jiǎn)介

ICE是一種新的面向?qū)ο蟮闹虚g件技術(shù).從根本上說(shuō),ICE為構(gòu)建面向?qū)ο蟮目蛻簦?wù)器應(yīng)用提供了工具、API和庫(kù)支持[8].可用于替代像CORBA或COM/DCOM/COM+這樣的中間件,為構(gòu)建面向?qū)Φ姆植际娇蛻舴?wù)器應(yīng)用提供了平臺(tái)支持.ICE應(yīng)用適合在異種環(huán)境中使用:客戶和服務(wù)器可以用不同的編程語(yǔ)言編寫,可以運(yùn)行在不同的操作系統(tǒng)和機(jī)器架構(gòu)上,并且可以使用多種網(wǎng)絡(luò)技術(shù)進(jìn)行通信.在最新的3.7版本中,支持 c++,c#,.Net,java,javascript,objective-c,python,ruby 等編程語(yǔ)言,操作系統(tǒng)支持 windows,linux 和 mac os,支持最新的 docker部署,并且無(wú)論部署環(huán)境如何,這些應(yīng)用的源碼都是可移植的.

ICE定義了自己的規(guī)范語(yǔ)言Slice,它用于使對(duì)象接口與其實(shí)現(xiàn)相分離的基礎(chǔ)性抽象機(jī)制.客戶和服務(wù)器可以用不同的編程語(yǔ)言編寫,可以運(yùn)行在不同的操作系統(tǒng)和機(jī)器架構(gòu)上,并且可以使用多 種網(wǎng)絡(luò)協(xié)議進(jìn)行高效通信.

ICE客戶與服務(wù)器內(nèi)部的邏輯結(jié)構(gòu)如圖4所示,ICE核心為遠(yuǎn)地通信提供了客戶端和服務(wù)器端運(yùn)行時(shí)支持,ICE核心是作為客戶和服務(wù)器可與之鏈接的庫(kù)提供的,客戶ICE核心、服務(wù)器ICE核心和對(duì)象適配來(lái)自于庫(kù)代碼,代理和骨架由Slice定義生成.客戶應(yīng)用和服務(wù)器應(yīng)用來(lái)自于程序員編寫的上層應(yīng)用代碼[9].

3 IceGrid 服務(wù)架構(gòu)分析

IceGrid是ICE的核心服務(wù),提供了若干基本的服務(wù),可以簡(jiǎn)化分布式應(yīng)用的開(kāi)發(fā)和部署[9].IceGrid主要由registry和node組成,registry主要用來(lái)為客戶端提供定位服務(wù),并且管理部署的node節(jié)點(diǎn),node用來(lái)裝載服務(wù),根據(jù)registry的指示對(duì)服務(wù)進(jìn)行部署與管理.

定位服務(wù):保證服務(wù)節(jié)點(diǎn)的位置透明性.當(dāng)客戶端需要訪問(wèn)某一個(gè)服務(wù)時(shí),不需要了解服務(wù)的具體位置,直接訪問(wèn)registry,由registry將服務(wù)的具體位置告訴客戶端,做到服務(wù)端的位置透明.

圖4 客戶與服務(wù)器的結(jié)構(gòu)

服務(wù)管理:管理服務(wù)的注冊(cè),啟動(dòng)與關(guān)閉.所有的服務(wù)都需要向registry進(jìn)行注冊(cè),當(dāng)服務(wù)需要被訪問(wèn)時(shí),由registry通知相應(yīng)的node對(duì)服務(wù)進(jìn)行啟動(dòng)與關(guān)閉的管理,服務(wù)的負(fù)載均衡也由registry進(jìn)行控制,整個(gè)網(wǎng)絡(luò)服務(wù)的部署也由registry進(jìn)行管理.registry是整個(gè)網(wǎng)絡(luò)的樞紐.

4 對(duì) IceGrid 提出的改進(jìn)

IceGrid作為整個(gè)ICE網(wǎng)絡(luò)服務(wù)的骨架,起著至關(guān)重要的作用,所有的分布式網(wǎng)絡(luò)服務(wù)都通過(guò)IceGrid進(jìn)行訪問(wèn),當(dāng)整個(gè)網(wǎng)絡(luò)比較龐大時(shí),單個(gè)registry已經(jīng)不能滿足網(wǎng)絡(luò)的負(fù)載需求,當(dāng)registry出現(xiàn)問(wèn)題時(shí),整個(gè)網(wǎng)絡(luò)就會(huì)癱瘓.所以registry本身支持主從模式的冗余.

首先啟動(dòng)master.Master的配置文件與slave的配置文件有所不同,master中必須指定registry的名字為master,以和其他slave進(jìn)行區(qū)分.

遠(yuǎn)程將部署文件discriptor發(fā)送給master.當(dāng)master收到部署文件后,會(huì)等待node節(jié)點(diǎn)和slave的注冊(cè).

啟動(dòng)所有的slave.當(dāng)slave啟動(dòng)后,會(huì)主動(dòng)向master進(jìn)行注冊(cè),注冊(cè)的過(guò)程中,master會(huì)將部署文件發(fā)送給所有的slave,在slave與master之間,實(shí)現(xiàn)了一個(gè)發(fā)布訂閱服務(wù),當(dāng)master對(duì)部署文件進(jìn)行更新時(shí),會(huì)通知所有的slave進(jìn)行部署文件同步.

啟動(dòng)所有的node節(jié)點(diǎn).當(dāng)node節(jié)點(diǎn)啟動(dòng)后,會(huì)首先向master進(jìn)行注冊(cè),隨后master將相應(yīng)的部署配置文件發(fā)給node,并將所有slave的列表也發(fā)給node,node通過(guò)部署文件啟動(dòng)相應(yīng)的服務(wù).然后向所有的slave進(jìn)行注冊(cè).

當(dāng)服務(wù)部署完成后,master和slave都可以給客戶端提供服務(wù),都可以對(duì)node進(jìn)行管理,但是只能通過(guò)master對(duì)部署文件進(jìn)行更改,slave對(duì)部署文件是只讀模式.

4.1 registry主從模式存在的問(wèn)題

(1)主從切換不能自動(dòng)進(jìn)行

當(dāng)master出現(xiàn)問(wèn)題時(shí),slave不能主動(dòng)進(jìn)行選舉切換到 master,如果 master出現(xiàn)問(wèn)題,slave雖然可以繼續(xù)提供服務(wù),但是部署文件不能進(jìn)行更新,一旦需要更新部署文件,就必須更改某一個(gè)slave的配置為master,使用新的配置重新啟動(dòng)這個(gè)slave,當(dāng)整個(gè)網(wǎng)絡(luò)十分龐大復(fù)雜時(shí),會(huì)增加運(yùn)維的成本.

(2)registry要實(shí)現(xiàn)的功能太多

registry不僅要提供位置服務(wù),服務(wù)管理,還需要實(shí)現(xiàn)發(fā)布訂閱服務(wù)對(duì)部署文件進(jìn)行同步管理.當(dāng)部署文件有更新時(shí),master要通知所有的slave,并且將部署文件同步到所有的slave中,當(dāng)某個(gè)slave因?yàn)榫W(wǎng)絡(luò)問(wèn)題斷開(kāi)連接重新與master建立連接時(shí),master要重新與slave同步數(shù)據(jù)庫(kù)文件.當(dāng)網(wǎng)絡(luò)負(fù)載很大時(shí),registry要做的事情太多,將這么多功能放在一起,很容易造成網(wǎng)絡(luò)故障,進(jìn)而加劇網(wǎng)絡(luò)環(huán)境的進(jìn)一步惡化.

4.2 通過(guò)Zookeeper對(duì)registry主從模式的改進(jìn)

Zookeeper作為一款開(kāi)源多年的分布式協(xié)調(diào)服務(wù)框架,支持高可用,本身非常可靠.通過(guò)利用 Zookeeper的配置管理和集群管理功能,可以解決registry中遇到的問(wèn)題.

整體的Zookeeper目錄結(jié)構(gòu)圖如圖5,其中根節(jié)點(diǎn)為“/IceGrid”,下一級(jí)包含 2 個(gè)目錄節(jié)點(diǎn):“/Configuration”,“/Registrys”.

(1)利用集群管理解決主從切換問(wèn)題

在Zookeeper中,首先建立持久化目錄節(jié)點(diǎn)(PERSISTENT)“/registrys”,稱為父目錄,用于集中化管理所有的registry服務(wù)器,每一個(gè)registry均被創(chuàng)建為父目錄下的臨時(shí)目錄節(jié)點(diǎn)(EPHEMERAL),稱為子目錄,并在父目錄下注冊(cè)Watcher.當(dāng)某一個(gè)registry宕機(jī)或因網(wǎng)絡(luò)問(wèn)題離開(kāi)集群時(shí),其會(huì)話(session)過(guò)期,對(duì)應(yīng)的臨時(shí)目錄節(jié)點(diǎn)被自動(dòng)刪除.根據(jù)Watcher機(jī)制,當(dāng)被監(jiān)聽(tīng)的父目錄節(jié)點(diǎn)狀態(tài)發(fā)生變化時(shí),即父目錄節(jié)點(diǎn)下的子目錄節(jié)點(diǎn)被刪除,就會(huì)觸發(fā)WatchedEvent事件,關(guān)注該父目錄節(jié)點(diǎn)的所有registry均被通知.若失去響應(yīng)的 registry 恰為 master時(shí),根據(jù)選舉機(jī)制,Zookeeper服務(wù)器進(jìn)入恢復(fù)模式(競(jìng)選),觸發(fā)選舉流程,選出新的master.同理,當(dāng)父目錄節(jié)點(diǎn)的子目錄節(jié)點(diǎn)增加時(shí),關(guān)注該父目錄節(jié)點(diǎn)的所有registry均被通知,且根據(jù)選舉機(jī)制,Zookeeper服務(wù)器進(jìn)入廣播模式 (同步),該新加入的registry與master進(jìn)行狀態(tài)同步.

圖5 Zookeeper目錄結(jié)構(gòu)圖

因此,利用 Watcher機(jī)制和選舉機(jī)制,可解決IceGrid中registry的主從切換問(wèn)題.當(dāng)master出現(xiàn)問(wèn)題,由 Zookeeper選出新的 master,當(dāng)有新的 registry 加入時(shí),由Zookeeper通知master與新的registry進(jìn)行狀態(tài)同步.

(2)利用配置管理解決部署文件同步問(wèn)題

在IceGrid中,由于registry集群中的各個(gè)服務(wù)節(jié)點(diǎn),均采用同一套部署文件;更新部署文件只能通過(guò)master進(jìn)行,隨后master需要通知所有的slave進(jìn)行部署文件同步,同步期間,所有的slava需要與master進(jìn)行讀寫操作.

依據(jù)Zookeeper節(jié)點(diǎn)特有的數(shù)據(jù)存儲(chǔ)能力,以及Watcher機(jī)制,可以實(shí)現(xiàn)部署文件信息的統(tǒng)一管理.將整個(gè)registry的部署信息存儲(chǔ)在持久化目錄節(jié)點(diǎn)(PERSISTENT)“/Configuration”上,集群中所有registry作為Zookeeper客戶端 ,在該節(jié)點(diǎn)上注冊(cè)Watcher.當(dāng)該節(jié)點(diǎn)上的數(shù)據(jù)發(fā)生更改(即部署信息被管理員修改),觸發(fā)設(shè)置在該節(jié)點(diǎn)上的Watcher.所有關(guān)注該節(jié)點(diǎn)的客戶端均被通知,并根據(jù)收到的通知更新自身部署信息,實(shí)現(xiàn)與master部署信息的同步.這樣,每當(dāng)部署信息被修改,不需要master對(duì)slave進(jìn)行通知,由 Zookeeper的 watcher機(jī)制進(jìn)行通知,部署文件的同步也由Zookeeper進(jìn)行同步,master只需要專注于提供其他服務(wù)就好,這樣也不需要master與slave進(jìn)行頻繁的讀寫操作,降低master的讀寫壓力.所有的I/O讀寫全部由Zookeeper集群提供.

5 測(cè)試結(jié)果

通過(guò)在3臺(tái)服務(wù)器上部署3個(gè)IceRegistry服務(wù),分別取名為r1,r2,r3這3臺(tái)服務(wù)器都向Zookeeper集群進(jìn)行注冊(cè),在首次注冊(cè)中,r2 為主節(jié)點(diǎn),r1 和 r3 為從節(jié)點(diǎn),期間斷開(kāi)主節(jié)點(diǎn)r2,然后通過(guò)Zookeeper的配置管理對(duì)部署文件進(jìn)行更新,發(fā)現(xiàn)部署信息仍能在余下的r1和r3中進(jìn)行同步,通過(guò)Zookeeper的shell命令查看節(jié)點(diǎn)信息,發(fā)現(xiàn)r1被選為了新的主節(jié)點(diǎn),IceGrid部署的服務(wù)更新成功.

然后重新開(kāi)啟r2,再通過(guò)shell對(duì)Zookeeper的文件系統(tǒng)進(jìn)行查看,r2又重新向Zookeeper進(jìn)行注冊(cè),并且部署文件也自動(dòng)同步到了r2的數(shù)據(jù)庫(kù)中.

通過(guò)以上的集群搭建與測(cè)試,說(shuō)明IceRegistry的主從節(jié)點(diǎn)可以自動(dòng)切換,不再需要人工干預(yù).并且不再需要主節(jié)點(diǎn)來(lái)同步部署信息或者發(fā)現(xiàn)新的從節(jié)點(diǎn),這些責(zé)任全部由Zookeeper集群來(lái)做.

6 結(jié)論與展望

通過(guò)將Zookeeper加入到IceGrid框架中,利用Zookeeper的集群管理可以解決registry不能自動(dòng)主從切換的問(wèn)題,利用Zookeeper的配置管理可以解決registry之間的部署文件同步問(wèn)題,改進(jìn)后的IceGrid將主從切換和部署文件同步等功能剝離到了Zookeeper中,這樣不僅解決了IceGrid之前存在的主從切換的缺陷問(wèn)題,也減輕了registry需要承擔(dān)的任務(wù),可以更可靠的為client提供定位服務(wù).

本文就ICE的主從切換方面進(jìn)行了探索,提出了一種基于Zookeeper的解決方案,隨著中間件技術(shù)的不斷進(jìn)步,還有更多優(yōu)秀的中間件加入到分布式應(yīng)用當(dāng)中來(lái).因此基于中間件的架構(gòu)模式會(huì)隨著廣泛應(yīng)用而不斷成熟,中間件技術(shù)會(huì)更加適應(yīng)復(fù)雜的網(wǎng)絡(luò)環(huán)境和繁雜的應(yīng)用場(chǎng)景.

猜你喜歡
服務(wù)
自助取卡服務(wù)
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
高等教育為誰(shuí)服務(wù):演變與啟示
招行30年:從“滿意服務(wù)”到“感動(dòng)服務(wù)”
商周刊(2017年9期)2017-08-22 02:57:56
主站蜘蛛池模板: 狠狠综合久久久久综| 性视频久久| 一级一级一片免费| 国内精品小视频在线| 亚洲欧美在线综合一区二区三区| 亚洲无线观看| 亚洲天堂777| 国产在线精彩视频二区| 色婷婷亚洲十月十月色天| 久久精品亚洲热综合一区二区| 久久夜色精品国产嚕嚕亚洲av| 欧美19综合中文字幕| 色噜噜综合网| 国产精品久久自在自线观看| 一本久道久久综合多人| 永久免费av网站可以直接看的 | 欧美亚洲日韩不卡在线在线观看| 亚洲a免费| 一级毛片免费的| 国产女同自拍视频| 国产精品区网红主播在线观看| 欧美.成人.综合在线| 日本黄色不卡视频| 一级毛片在线播放免费| 在线综合亚洲欧美网站| 免费国产不卡午夜福在线观看| 亚洲成a人在线观看| 亚洲动漫h| 国产美女91视频| 青青国产成人免费精品视频| 国产午夜不卡| 免费国产好深啊好涨好硬视频| 欧美高清国产| 欧美丝袜高跟鞋一区二区| 久久免费视频6| 日本在线视频免费| 亚洲天堂在线视频| 国产成人久久综合777777麻豆| 92午夜福利影院一区二区三区| 欧美一级色视频| 日本三级黄在线观看| 激情無極限的亚洲一区免费| 久久国产成人精品国产成人亚洲| 欧美区一区| 三上悠亚在线精品二区| 国产在线精彩视频论坛| 操操操综合网| 欧美成人国产| 人人爽人人爽人人片| 天堂在线www网亚洲| 欧美三級片黃色三級片黃色1| 免费无码又爽又黄又刺激网站| 91无码人妻精品一区| 999在线免费视频| 久无码久无码av无码| 国产女人喷水视频| 国产精品无码一区二区桃花视频| 国产一区二区视频在线| 国产精品伦视频观看免费| 美女内射视频WWW网站午夜| 91九色国产在线| 欧美不卡在线视频| 成人日韩视频| 无码电影在线观看| 久久亚洲黄色视频| 亚洲欧美成人网| 国产日韩欧美在线视频免费观看| 91青青在线视频| 毛片视频网址| 亚国产欧美在线人成| 免费人成在线观看成人片| 91美女视频在线观看| 日韩av在线直播| 亚洲国内精品自在自线官| 国产精欧美一区二区三区| 最新亚洲人成无码网站欣赏网 | 伊人网址在线| 日本不卡视频在线| 欧美激情首页| 中国一级特黄大片在线观看| 亚洲第一国产综合| 为你提供最新久久精品久久综合|