Zookeeper叢集搭建

來源:互聯網
上載者:User

標籤:zookeeper   叢集   centos   iptables   安裝   

引言: zookeeper是目前使用比較多的註冊中心,在dubbo的體系中,處於一個比較關鍵的環節,故一般而言,會以叢集的形式來搭建,本文將簡要介紹搭建的過程。


1.  下載,從Zookeeper的官網上下載.

       wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz

2. 將其解壓縮出來

3.  進入解壓縮目錄,進入conf, 複製一份zoo_sample.cfg為zoo.cfg.

4.  在zoo.cfg中添加如下資訊:

     修改dataDir, 其為Zookeeper的資料檔案所在的目錄

     dataDir=D:/devtools/zookeeper-3.2.2/build 
  • tickTime:這個時間是作為 Zookeeper 伺服器之間或用戶端與伺服器之間維持心跳的時間間隔,也就是每個 tickTime 時間就會發送一個心跳。
  • dataDir:顧名思義就是 Zookeeper 儲存資料的目錄,預設情況下,Zookeeper 將寫資料的記錄檔也儲存在這個目錄裡。
  • clientPort:這個連接埠就是用戶端串連 Zookeeper 伺服器的連接埠,Zookeeper 會監聽這個連接埠,接受用戶端的訪問請求。

  5.  當這些配置項配置好後,你現在就可以啟動 Zookeeper 了,啟動後要檢查 Zookeeper 是否已經在服務,可以通過 netstat – ano 命令查看是否有你配置的 clientPort 連接埠號碼在監聽服務

 6.  配置叢集,在zoo.cfg中新增如下配置項:

 initLimit=5  syncLimit=2  server.1=192.168.211.1:2888:3888  server.2=192.168.211.2:2888:3888 server.3=192.168.211.3:2888:3888

  • nitLimit:這個配置項是用來配置 Zookeeper 接受用戶端(這裡所說的用戶端不是使用者串連 Zookeeper 伺服器的用戶端,而是 Zookeeper 伺服器叢集中串連到 Leader 的 Follower 伺服器)初始化串連時最長能忍受多少個心跳時間間隔數。當已經超過 10 個心跳的時間(也就是 tickTime)長度後 Zookeeper 伺服器還沒有收到用戶端的返回資訊,那麼表明這個用戶端串連失敗。總的時間長度就是 5*2000=10 秒
  • syncLimit:這個配置項標識 Leader 與 Follower 之間發送訊息,請求和應答時間長度,最長不能超過多少個 tickTime 的時間長度,總的時間長度就是 2*2000=4 秒
  • server.A=B:C:D:其中 A 是一個數字,表示這個是第幾號伺服器;B 是這個伺服器的 ip 地址;C 表示的是這個伺服器與叢集中的 Leader 伺服器交換資訊的連接埠;D 表示的是萬一叢集中的 Leader 伺服器掛了,需要一個連接埠來重新進行選舉,選出一個新的 Leader,而這個連接埠就是用來執行選舉時伺服器相互連信的連接埠。如果是偽叢集的配置方式,由於 B 都是一樣,所以不同的 Zookeeper 執行個體通訊連接埠號不能一樣,所以要給它們分配不同的連接埠號碼。

   7. 現在一共有3台機器,machine1,machine2, machine3,分別對應其中的server1,server2, server3. 此時需要在server1機器下的zookeeper/dataDir目錄下,新建立一個檔案myid。 在這個檔案中,只需要填寫當前的機器ID:,  比如server1中的內容填寫1,即可;以此類推。

  8.   然後依次啟動各個節點;在各個節點中,會出現一些尋找其他相關的節點的資訊,不用擔心,只需要繼續啟動節點即可。待所有的節點都啟動完畢之後,他們會選舉一個leader, 至此整個的Zookeeper叢集啟動完畢。

 在其中出現的問題,有無法open channel to /192.168.1.1:3888的情況,這裡一般都是連接埠或者機器沒有正常啟動開啟造成的。在Centos系統中,如何開啟連接埠呢?

  切換到root許可權, vi /etc/sysconfig/iptables  

vi /etc/sysconfig/iptables
  在其中添加如下資訊:-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3001 -j ACCEPT
 

    >> service iptables restart 即可重新啟動iptables

    >> service iptables stop   關閉


參考資料:

1. http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/

2. http://myjeeva.com/zookeeper-cluster-setup.html#deploying-zookeeper-cluster-multi-server

3. http://zdeyuan.blog.163.com/blog/static/42263655201072524055404/

4. http://blog.csdn.net/jemlee2002/article/details/7042991  【如何管理iptables】

        

Zookeeper叢集搭建

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.