搭建Zookeeper集群

2021-09-25 23:48:21 字數 1861 閱讀 2392

為什麼搭建zookeeper集群

大部分分布式應用需要乙個主控、協調器或者控制器來管理物理分布的子程序。目前,大多數都要開發私有的協調程式,缺乏乙個通用機制,協調程式的反覆編寫浪費,且難以形成通用、伸縮性好的協調器,zookeeper提供通用的分布式鎖服務,用以協調分布式應用。所以說zookeeper是分布式應用的協作服務。

zookeeper作為註冊中心,伺服器和客戶端都要訪問,如果有大量的併發,肯定會有等待。所以可以通過zookeeper集群解決。

了解leader選舉

zookeeper的啟動過程中leader選舉是非常重要而且最複雜的乙個環節。那麼什麼是leader選舉呢?zookeeper為什麼需要leader選舉呢?zookeeper的leader選舉的過程又是什麼樣子的?

首先我們來看看什麼是leader選舉。其實這個很好理解,leader選舉就像**選舉一樣,每人一票,獲得多數票的人就當選為**了。在zookeeper集群中也是一樣,每個節點都會投票,如果某個節點獲得超過半數以上的節點的投票,則該節點就是leader節點了。

以乙個簡單的例子來說明整個選舉的過程.

假設有五颱伺服器組成的zookeeper集群,它們的id從1-5,同時它們都是最新啟動的,也就是沒有歷史資料,在存放資料量這一點上,都是一樣的.假設這些伺服器依序啟動,來看看會發生什麼 。

伺服器1啟動,此時只有它一台伺服器啟動了,它發出去的報沒有任何響應,所以它的選舉狀態一直是looking狀態

伺服器2啟動,它與最開始啟動的伺服器1進行通訊,互相交換自己的選舉結果,由於兩者都沒有歷史資料,所以id值較大的伺服器2勝出,但是由於沒有達到超過半數以上的伺服器都同意選舉它(這個例子中的半數以上是3),所以伺服器1,2還是繼續保持looking狀態.

伺服器3啟動,根據前面的理論分析,伺服器3成為伺服器1,2,3中的老大,而與上面不同的是,此時有三颱伺服器選舉了它,所以它成為了這次選舉的leader.

伺服器4啟動,根據前面的分析,理論上伺服器4應該是伺服器1,2,3,4中最大的,但是由於前面已經有半數以上的伺服器選舉了伺服器3,所以它只能接收當小弟的命了.

伺服器5啟動,同4一樣,當小弟

準備工作

重新部署一台集群的伺服器。

(1)安裝jdk 【此步驟省略】。

(2)zookeeper壓縮包上傳到伺服器

(3)將zookeeper解壓 ,建立data目錄 ,將 conf下zoo_sample.cfg 檔案改名為 zoo.cfg

(4)建立/usr/local/zookeeper-cluster目錄,將解壓後的zookeeper複製目錄

(5) 配置每乙個zookeeper 的datadir(zoo.cfg) clientport 埠號

修改/usr/local/zookeeper-cluster/zookeeper/conf/zoo.cfg

配置集群

(1)在每個zookeeper的 data 目錄下建立乙個 myid 檔案,內容分別是1、2、3 。這個檔案就是記錄每個伺服器的id

(2)在每乙個zookeeper 的 zoo.cfg配置客戶端訪問埠(clientport)和集群伺服器ip列表。

集群伺服器ip列表如下

server.id=ip:通訊埠號:選舉埠號

server.2=192.168.25.140:2882:3882

server.3=192.168.25.140:2883:3883

啟動集群

啟動集群就是分別啟動每個例項。

dubbo連線zookeeper集群

方式一:直接修改服務提供者和服務呼叫者的spring 配置檔案

protocol=「zookeeper」 address=「192.168.25.140:2181,192.168.25.140:2182,192.168.25.140:2183」>

zookeeper集群搭建

接觸zookeeper集群已有很長很長一段時間了,zookeeper在專案中的使用相當的頻繁,如dubb服務 amq集群 大資料領域hadoop等。zookeeper的集群建立非常簡單,一直想寫一篇文章來對集群使用的介紹,但一直沒能抽出空,今天正好閒來無事,就重新實踐一遍來整理記錄,下文是基本的集群...

zookeeper集群搭建

zookeeper環境搭建需要保證奇數臺機器,以保證演算法能選舉出乙個leader。一 環境準備 datadir dir ticktime 2000 initlimit 5 synclimit 2 clientport 2181 server.0 192.168.1.100 2888 3888 se...

zookeeper集群搭建

1.準備工作 tomcat zookeeper 最少三個結點搭乙個集群,所以複製三份 2.搭建並配置三個zookeeper例項 cd usr local solr cloud zookeeper01 進zookeeper01目錄,mkdir data 該目錄下建立data資料夾,放置zookeepe...