kafka学习3——单机伪集群(window版)

由于手头机器不足,所以在一台机器上部署了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的安装目录(解压目录)是绝对不能包含汉字的。

原文地址:https://www.cnblogs.com/lch666/p/7878937.html