Zookeeper實戰之單機集群模式

2021-06-26 23:17:43 字數 2835 閱讀 9319

前一篇文章介紹了zookeeper的單機模式的安裝及應用,但是zookeeper是為了解決分布式應用場景的,所以通常都會執行在集群模式下。今天由於手頭機器不足,所以今天打算在一台機器上部署三個zookeeper服務來組成乙個zookeeper集群。這裡解壓zookeeper的安裝包到/opt目錄下,這裡用三個目錄來代表三個zookeeper例項,分別是/opt/zookeeper1,/opt/zookeeper2和/opt/zookeeper3.

1. 首先編輯每個zookeeper目錄下的conf/zoo.cfg檔案。三個配置配置檔案的內容分別如下

$ cat /opt/zookeeper1/conf/zoo.cfg

ticktime=2000

datadir=/opt/zookeeper1/data

clientport=2181

initlimit=10

synclimit=5

server.1=127.0.0.1:2881:3881

server.2=127.0.0.1:2882:3882

server.3=127.0.0.1:2883:3883

$ cat /opt/zookeeper2/conf/zoo.cfg

ticktime=2000

datadir=/opt/zookeeper2/data

clientport=2182

initlimit=10

synclimit=5

server.1=127.0.0.1:2881:3881

server.2=127.0.0.1:2882:3882

server.3=127.0.0.1:2883:3883

$ cat /opt/zookeeper3/conf/zoo.cfg

ticktime=2000

datadir=/opt/zookeeper3/data

clientport=2183

initlimit=10

synclimit=5

server.1=127.0.0.1:2881:3881

server.2=127.0.0.1:2882:3882

server.3=127.0.0.1:2883:3883

其中有幾點需要注意

* datadir: 三個zookeeper例項的datadir目錄要區別開,這裡分別指定到各個zookeeper例項目錄下的data目錄。

* clientport: 定義zookeeper客戶端連線zookeeper服務端時使用的埠,這裡因為是在一台機器上做的集群,所以三個例項的埠要區分開。

* server.

: 定義zookeeper集群的各個例項的的ip和埠,這裡因為是在一台機器上做的集群,所以ip都定義的是127.0.0.1,但是後面的埠要區分開。

2. 建立data目錄和例項id檔案

mkdir /opt/zookeeper1/data

mkdir /opt/zookeeper2/data

mkdir /opt/zookeeper3/data

echo 1 > /opt/zookeeper1/data/myid

echo 2 > /opt/zookeeper2/data/myid

echo 3 > /opt/zookeeper3/data/myid

這裡要注意需要在每個zookeeper的datadir目錄下建立myid檔案,內容是記錄各個zookeeper的例項id。

3. 啟動zookeeper服務

分別進入各個zookeeper的bin目錄,然後執行「./zkserver.sh start」來啟動乙個zookeeper服務。

4. 客戶端連線

隨便進入乙個zookeeper的bin目錄,然後執行下面的命令來分別連線zookeeper服務。

./zkcli.sh -server 127.0.0.1:2181

./zkcli.sh -server 127.0.0.1:2182

./zkcli.sh -server 127.0.0.1:2183

在其中的乙個client上建立乙個znode節點

create /mykey myvalue
然後在別的client上檢視新建立zonde節點

get /mykey

5. 檢視zookeeper狀態

啟動zookeeper之後,由於zookeeper自己會有一套leader的選舉演算法,所以此時如果想知道那個zookeeper是leader可以在各個zookeeper的bin目錄執行「./zkserver.sh status」命令來檢視。

如果是leader

$ ./zkserver.sh status

jmx enabled by default

using config: /opt/zookeeper1/bin/../conf/zoo.cfg

mode: leader

如果不是leader

$ ./zkserver.sh status

jmx enabled by default

using config: /opt/zookeeper3/bin/../conf/zoo.cfg

mode: follower

此時可以把leader的那個節點停了,然後再看檢視其它兩個zookeeper例項,此時剩下的兩個zookeeper例項就會再選舉出乙個leader。

zookeeper單機配置

一 在conf的zoo.cfg檔案中配置 1 datadir用於配置當前節點儲存資料的目錄 需要先建立好,zookeeper不會去建立 2 clientport用於指定客戶端訪問zookeeper時的埠 三 啟動 1 在zookeeper的bin目錄下執行zkserver.sh start啟動該節點...

Zookeeper單機安裝

關閉linux centos6.x版本 的防火牆 解壓zookeeper的安裝包 tar xvf zookeeper 3.4.8進入zookeeper的安裝目錄下的子目錄conf目錄中 cd zookeeper 3.4.8 conf 將conf目錄下的zoo sample.cfg檔案複製為zoo.c...

9 ZooKeeper之搭建單機模式。

在集群和單機兩種模式下,我們基本完成了分別針對生產環境和開發環境zookeeper服務的搭建,已經可以滿足絕大多數場景了。現在我們再來看看另外一種情況,如果你手上有且只有一台比較好的機器 大體是 cpu核數大於10,記憶體大於等於8gb 那麼這個時候,如果作為單機模式進行部署,資源明顯優點浪費 而如...