這篇“ZooKeeper實(shí)現(xiàn)高可用的兩種方案是什么”文章的知識點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“ZooKeeper實(shí)現(xiàn)高可用的兩種方案是什么”文章吧。
成都創(chuàng)新互聯(lián)主要從事網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)順城,十年網(wǎng)站建設(shè)經(jīng)驗(yàn),價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575注:下面實(shí)現(xiàn)高可用都用的是雙機(jī)熱備,為了方便,把調(diào)度服務(wù)器debian1簡稱為主機(jī),把調(diào)度服務(wù)器debian1的備機(jī)debian1'簡稱為備機(jī)。
客戶端有感知的高可用
客戶端有感知的高可用,也就是需要客戶端的配合,客戶端自己去確認(rèn)服務(wù)器的變更并切換訪問的目標(biāo)。比如說我們的主機(jī)、備機(jī)都在ZooKeeper(或者其他類似的注冊中心比如redis)中進(jìn)行注冊,客戶端監(jiān)聽ZooKeeper中服務(wù)器的信息,發(fā)現(xiàn)主機(jī)下線自己就切換訪問備機(jī)即可。
ZooKeeper偽集群搭建
首先在本機(jī)搭建包含3個節(jié)點(diǎn)的ZooKeeper偽集群。在官網(wǎng)下載版本3.5.4-beta,解壓,然后復(fù)制3份,每一份都要做如下操作:
進(jìn)入conf文件夾 創(chuàng)建一個配置文件zoo.cfg。代碼如下:
創(chuàng)建上面的dataDir和dataLogDir,并在dataDir目錄下必須創(chuàng)建myid文件,寫入不同的整數(shù)ID,也就是上面的server.x的x,比如1
分別進(jìn)入bin目錄,在zkServer.cmd中call之前加入set ZOOCFG=../conf/zoo.cfg 并用其啟動。
順帶一提,代碼開發(fā)我就使用我之前的項(xiàng)目CHKV了,因?yàn)檫@個項(xiàng)目中的NameNode或者DataNode也可以用ZooKeeper實(shí)現(xiàn)高可用,歡迎和我一起完善這個項(xiàng)目,一塊進(jìn)步。
調(diào)度服務(wù)端開發(fā)
調(diào)度服務(wù)器主要向ZooKeeper注冊自己,并向客戶端提供服務(wù)。我們使用curator框架來和ZooKeeper交互,特別要注意版本問題。
主要代碼如下:
客戶端開發(fā)
客戶端主要向ZooKeeper監(jiān)聽調(diào)度服務(wù)器變更事件,并向其發(fā)起應(yīng)用請求。實(shí)際上應(yīng)用服務(wù)器也可以使用這部分代碼來監(jiān)聽調(diào)度服務(wù)器的變化。
主要代碼如下:
對客戶端透明的高可用
對客戶端透明的高可用,也就是客戶端不需要做什么工作,服務(wù)器切換不切換客戶端根本不知道也不關(guān)心。主要實(shí)現(xiàn)方式有兩種,一種是客戶端通過域名訪問主機(jī),那么監(jiān)控主機(jī)下線后就把域名重新分配給備機(jī),當(dāng)然這個切換會有時間成本,視定義的DNS緩存時間而定;第二種就是客戶端通過IP訪問主機(jī),監(jiān)控到主機(jī)下線后就通過IP漂移技術(shù)把對外的IP(或者說虛擬IP)分配給備機(jī),這樣就能做到及時的切換。
實(shí)際環(huán)境中常常使用keepalived來實(shí)現(xiàn)IP漂移。
搭建過程參考了The keepalived solution for LVS和官網(wǎng)文檔
首先主機(jī)、備機(jī)都要安裝keepalived,然后配置主機(jī)/etc/keepalived/keepalived.conf:
配置備機(jī)/etc/keepalived/keepalived.conf,與主機(jī)類似,但是state是backup,且權(quán)重較低即可:
以上就是關(guān)于“ZooKeeper實(shí)現(xiàn)高可用的兩種方案是什么”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。