废话不多说,上来就干,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