docker zookeeper 集群搭建
前言
其實zookeeper在一般的公司的應用不太多,註冊中心、分散式鎖、選舉等等。之前用dubbo,就會用到zookeeper作為服務註冊中心,現在轉向springcloud,就很少用zookeeper了。但是近期研究分散式鎖,對比了很多方案,比如資料庫,redis,zookeeper等等,最終還是選擇zookeeper,至於原因會在後續的文章中提到。
在開發環境中,大家應該都用的是zookeeper單點吧,但是在生產環境中我相信沒有人敢用單點的,應該都是用的集群,因為萬一單點掛掉的話,我們的應用也就自然而然的ConnectionException。那麼,接下來我就記錄一下我自己用docker搭建zookeeper集群。
準備工具
一、安裝docker
二、在docker庫獲取鏡像:zookeeper(tips:我下載的版本是3.4.13)
搭建
一、啟動zookeeper單點,在開發環境中一般都用單點
docker run -d -p 2181:2181 --restart always --name zookeeper
-v $PWD/volume/data:/data
-v $PWD/volume/datalog:/datalog
zookeeper:3.4.13
二、zookeeper 集群搭建,這裡我準備利用三個zookeeper節點組成一個集群,並且三個節點都在同一台主機上,如果需要節點原型在不同的主機上,修改對應的ip和埠即可
-- 創建節點文件夾
mkdir cluster/node1 -p && mkdir cluster/node2 -p && mkdir cluster/node3 -p
-- 機器ip
machine_ip=10.82.12.95
-- 運行節點1
docker run -d -p 2181:2181 -p 2887:2888 -p 3887:3888 --name zookeeper_node1 --restart always
-v $PWD/cluster/node1/volume/data:/data
-v $PWD/cluster/node1/volume/datalog:/datalog
-e "TZ=Asia/Shanghai"
-e "ZOO_MY_ID=1"
-e "ZOO_SERVERS=server.1=0.0.0.0:2888:3888 server.2=$machine_ip:2888:3888 server.3=$machine_ip:2889:3889"
zookeeper:3.4.13
-- 運行節點2
docker run -d -p 2182:2181 -p 2888:2888 -p 3888:3888 --name zookeeper_node2 --restart always
-v $PWD/cluster/node2/volume/data:/data
-v $PWD/cluster/node2/volume/datalog:/datalog
-e "TZ=Asia/Shanghai"
-e "ZOO_MY_ID=2"
-e "ZOO_SERVERS=server.1=$machine_ip:2887:3887 server.2=0.0.0.0:2888:3888 server.3=$machine_ip:2889:3889"
zookeeper:3.4.13
-- 運行節點3
docker run -d -p 2183:2181 -p 2889:2888 -p 3889:3888 --name zookeeper_node3 --restart always
-v $PWD/cluster/node3/volume/data:/data
-v $PWD/cluster/node3/volume/datalog:/datalog
-e "TZ=Asia/Shanghai"
-e "ZOO_MY_ID=3"
-e "ZOO_SERVERS=server.1=$machine_ip:2887:3887 server.2=$machine_ip:2888:3888 server.3=0.0.0.0:2888:3888"
zookeeper:3.4.13
打開zookeeper鏈接工具ZooInspector進行測試,沒毛病。。。。。。


TAG:程序員小新人學習 |