由于手头机器不足,所以在一台机器上部署了3个server。
zookeeper集群:
kafka是通过Zookeeper实现分布操作。不管是broker,consumer,还是provide信息都是存储在Zookeeper中的。当broker挂掉都是Zookeeper来进行重新分配选择的。所有实现kafka集群前先得实现Zookeeper的集群配置。
1.首先从官网下载Zookeeper到本地。
2.在主文件下建立一个zookeeper文件夹 在zookeeper文件夹里建立三个文件夹server0,server1,server2
3.将下载的zookeeper分别解压到server0,server1,server2中
4.在解压目录下新建三个文件夹。data,dataLog,logs
5.进入conf目录。将zoo_sample.cfg 重命名 zoo.cfg
cfg内容如下:
注意:clientPort这个端口 如果是在1台机器上部署多个server,那么每台机器都要不同的clientPort。最后几行需要注意的的是server.num 这个num就是对应data/myid中的数字。因为在同一台机器上,后面连着的2个端口3个server都不要一样,否则端口冲突。其中第一个端口是用来集群成员的信息交换,第二个端口是在leader挂掉时专门用来进行选举leader所用。
server1:
server2:
6.分别进入data目录,创建myid的文件,里面写入一个数字(新建txt文件,写入server.num的num号,去掉txt后缀)
这里内容是:0
创建另外两个myid 内容分别是 1,2
7.分别在server0,server1,server2中启动服务
8.查看服务是否启动成功(直接打开CMD 运行 jps) QuorumPeerMain就是我们的服务主类()
9.zookeeper伪集群搭建完成
注意:上面我们配置的Zookeeper在开启第一个时候回报错。为什么呢。原因就是我们开启了一个服务,。但是我们的配置文件配置的是集群的信息。这个时候就回去寻找其他服务。但是这个时候其他的服务还没有开启呢。所以这个错误是正常。等我们集群中的所有的服务都开启了就不会报错。
除此之外,还有一点就是Zookeeper的安装目录(解压目录)是绝对不能包含汉字的。