① 安装ZooKeeper
在D:\
创建文件夹kafkacluster
,将kafka安装包kafka_2.12-3.6.1解压缩到kafka文件夹。
-
修改文件夹名为kafkazk
因为kafka内置了ZooKeeper软件,所以此处将解压缩的文件作为ZooKeeper软件使用。
-
修改config/zookeeper.properties文件
bash
dataDir=D:/kafkacluster/kafkazk/data
# the port at which the clients will connect
clientPort=2181
② 安装kafka
将上面解压缩的文件复制一份,改名为kafka1,然后修改config/server.properties配置文件:
# kafka节点数字标识,集群内具有唯一性
broker.id=1
# 监听器 9091为本地端口,如果冲突,请重新指定
listeners=PLAINTEXT://:9091
# 数据文件路径,如果不存在,会自动创建
log.dirs=D:/kafkacluster/kafka1/data
# ZooKeeper软件连接地址,2181为默认的ZK端口号 /kafka 为ZK的管理节点
zookeeper.connect=localhost:2181/kafka
将kafka1文件夹复制两份,改名为kafka2,kafka3
分别修改kafka2,kafka3文件夹中的配置文件server.properties
- 将文件内容中的broker.id=1分别改为broker.id=2,broker.id=3
- 将文件内容中的9091分别改为9092,9093(如果端口冲突,请重新设置)
- 将文件内容中的kafka1分别改为kafka2,kafka3
③ 封装启动脚本
① 在kafkazk文件夹下创建zk.cmd批处理文件
bash
# 添加启动命令
call bin/windows/zookeeper-server-start.bat config/zookeeper.properties
② 在kafka1,kafka2,kafka3文件夹下分别创建kfk.cmd批处理文件
bash
# 添加启动命令
call bin/windows/kafka-server-start.bat config/server.properties
③ 在kafkacluster文件夹下创建cluster.cmd批处理文件,用于启动kafka集群
bash
cd kafkazk
start zk.cmd
ping 127.0.0.1 -n 10 >nul
cd ../kafka1
start kfk.cmd
cd ../kafka2
start kfk.cmd
cd ../kafka3
start kfk.cmd
④ 在kafkacluster文件夹下创建cluster-clear.cmd批处理文件,用于清理和重置kafka数据
bash
cd kafkazk
rd /s /q data
cd ../kafka1
rd /s /q data
cd ../kafka2
rd /s /q data
cd ../kafka3
rd /s /q data
⑤ 双击执行cluster.cmd文件,启动Kafka集群
集群启动命令后,会打开多个黑窗口,每一个窗口都是一个kafka服务,请不要关闭,一旦关闭,对应的kafka服务就停止了。
如果启动过程报错,主要是因为zookeeper和kafka的同步问题,请先执行cluster-clear.cmd文件,再执行cluster.cmd文件即可。
PS : 输入行太长,命令语法不挣缺的解决办法
- 使用较短的文件夹和文件的名称
- 减少文件夹树的深度