廢話不多說,上來就幹,Linux環境下,zk僞叢集模式搭建
打開事先安裝好的zk目錄下,這裡不在詳解zk單執行個體的安裝部署,可以參考
叢集配置流程:
進入到zk目錄下,進入conf,将zoo_sample.cfg複制并命名為zoo1.cfg(目的是為了不修改原始檔案)
cp zoo_sample.cfg zoo1.cfg
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIwczX0xiRGZkRGZ0Xy9GbvNGL2EzXlpXazxSP9cmW0wGWl5WNXllb5cVWvB3MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL4YTN1EjN0kTM4IzMwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
分别建立3個data目錄用于存儲各節點資料
mkdir data
mkdir data/1
mkdir data/3
mkdir data/3
編寫myid檔案
echo 1 > data/1/myid
echo 3 > data/3/myid
echo 2 > data/2/myid
建立完後,檢查下,確定正确,以免返工
ls datamyid
ls -R data
修改配置檔案,zoo1.cfg
vim zoo1.cfg
修改資料存儲路徑
dataDir=data/1
修改端口
clientPort=12181
添加監聽端口
server.1=127.0.0.1:2887:3887
server.2=127.0.0.1:2888:3888
server.3=127.0.0.1:2889:3889
儲存,并複制zoo1.cfg,為zoo2.cfg,zoo3.cfg
cp zoo1.cfg zoo2.cfg
cp zoo1.cfg zoo3.cfg
修改zoo2.cfg的資料存儲目錄,和端口
vim zoo2.cfg
修改zoo3.cfg的資料存儲目錄,和端口
vim zoo3.cfg
好了,現在配置已經修改完畢,開始啟動,
cd ../
./bin/zkServer.sh start conf/zoo1.cfg
./bin/zkServer.sh start conf/zoo2.cfg
./bin/zkServer.sh start conf/zoo3.cfg
驗證是否部署成功,
進入12181的用戶端,添加一個節點
./bin/zkCli.sh -server localhost:12181
建立成功,去12182的用戶端看看,是否存在,并更新資料
成功,去12183的用戶端,檢查資料是否正常
資料沒問題,至此,linux環境下,zookeeper僞叢集模式部署完成,
以下就相關知識點進行解釋下
配置文法:
server.<節點ID>=<ip>:<資料同步端口>:<選舉端口>
- 節點ID:服務id手動指定1至125之間的數字,并寫到對應服務節點的 {dataDir}/myid 檔案中。
- IP位址:節點的遠端IP位址,可以相同。但生産環境就不能這麼做了,因為在同一台機器就無法達到容錯的目的。是以這種稱作為僞叢集。
- 資料同步端口:主從同時資料複制端口,(做僞叢集時端口号不能重複)。
- 遠舉端口:主從節點選舉端口,(做僞叢集時端口号不能重複)。
必須配置在所有節點的zoo.cfg檔案中,這是是zk的監聽端口
server.1=zoo1:2888:3888
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888