Zookeeper偽叢集搭建
搭建要求 :
真實的叢集是需要部署在不同的伺服器上的,但是在我們測試時同時啟動十幾個虛擬機器記憶體會吃不消,所以我們通常會搭建偽叢集,也就是把所有的服務都搭建在一臺虛擬機器上,用埠進行區分。
我們這裡要求搭建一個三個節點的Zookeeper叢集(偽叢集)。
在zookeeper叢集中,每個節點都會投票,如果某個節點獲得超過半數以上的節點的投票,則該節點就是leader節點了 ;
根據每個節點的ID進行選舉 , 列入有5臺zookeeper節點 , 節點ID為1—5 , 按順序依次啟動時 , 當啟動過半時 , 誰的ID最大誰就是leader (主) 節點;
準備工作 :
重新部署一臺虛擬機器作為我們搭建叢集的測試伺服器。
(1)安裝JDK 【此步驟省略】。
(2)Zookeeper壓縮包上傳到伺服器
(3)將Zookeeper解壓 ,建立data目錄 ,將 conf下zoo_sample.cfg 檔案改名為 zoo.cfg
(4)建立/usr/local/zookeeper-cluster目錄,將解壓後的Zookeeper複製到以下三個目錄
/usr/local/zookeeper-cluster/zookeeper-1
/usr/local/zookeeper-cluster/zookeeper-2
/usr/local/zookeeper-cluster/zookeeper-3
(5) 配置每一個Zookeeper 的dataDir(zoo.cfg) clientPort 分別為2181 2182 2183
修改/usr/local/zookeeper-cluster/zookeeper-1/conf/zoo.cfg
clientPort=2181
dataDir=/usr/local/zookeeper-cluster/zookeeper-1/data
修改/usr/local/zookeeper-cluster/zookeeper-2/conf/zoo.cfg
clientPort=2182
dataDir=/usr/local/zookeeper-cluster/zookeeper-2/data
修改/usr/local/zookeeper-cluster/zookeeper-3/conf/zoo.cfg
clientPort=2183
dataDir=/usr/local/zookeeper-cluster/zookeeper-3/data
2.2.3配置叢集
(1)在每個zookeeper的 data 目錄下建立一個 myid 檔案,內容分別是1、2、3 。這個檔案就是記錄每個伺服器的ID
2)在每一個zookeeper 的 zoo.cfg配置客戶端訪問埠(clientPort)和叢集伺服器IP列表。( 該埠配置的是叢集節點之間互相通訊 , 和程式訪問註冊中心的的埠無關 )
叢集伺服器IP列表如下
server.1=192.168.25.140:2881:3881
server.2=192.168.25.140:2882:3882
server.3=192.168.25.140:2883:3883
解釋:server.伺服器ID=伺服器IP地址:伺服器之間通訊埠:伺服器之間投票選舉埠