zookeeper集群
zookeeper集群
懒得配置更多虚拟机,直接一台机子开启多个zookeeper实现伪集群,和redis伪集群一样,修改个端口号即可,就可以一台服务器跑多个zookeeper。
安装配置
下载解压配置和单机的一样,只不过多了一些额外配置。
新建一个文件夹,专门放多台zookeeper。
喜欢的路径创建一个zookeepercluster目录,解压三份zookeeper的-bin.tar.gz包到该目录。

按个配置每个zookeeper
创建data目录,并在data目录下创建myid文件

里边分别添加内容1、2、3。这个文件就是记录每个服务器的ID。
按个修改配置文件。
主要修改两个:数据存放路径和端口号
切记切记:路径别有中文,不然一直提示找不到myid文件(虽然确实data目录创建并配置了)
1 | |
每个配置文件配置客户端访问端口(clientPort)和集群服务器IP列表。
末尾都添加如下:
1 | |
配置以上即可。启动验证
启动成功,状态会如下:



没问题的话,唯一的不美观就是,三个服务器,其第一或者第二个,由于其他的服务还没启动,日志里会报***拒绝连接,第三个服务没毛病。
问题
切记路径不能有中文,单机zookeeper可能没什么,集群的就有问题了。
即便正确配置了路径,也配置了myid,里边id也唯一。但会一直提示:

可以正常启动,但是查看状态时,提示如下:

权限问题,启动后,查看之前创建的data目录,除了自己创建的myid,还会有一个version-2的目录,里边有三个文件,省事直接修改所有权限即可。
1 | |
8080端口已经被占用:

原因,zookeeper3.5之后,Zookeeper AdminServer,默认使用8080端口。
配置文件添加如下内容修改为其他未被使用的端口即可:
1 | |
zookeeper集群
http://www.muzili.ren/2022/06/11/伪集群版Zookeeper搭建/