今天下午真是天朗气清啊,作者的内心也是荡漾无比,趁着这个大号的心情,给学习kafka的童鞋开一扇门~
本人在浏览kafka搭建的时候,没有发现一篇kafka在windows环境的搭建文章是清晰明了(划重点)的。辣么,今天就由我来给大家写一篇完整的Kafka集群搭建的文章。在发正文之前,大哥我在国内知名的大咖群里得到了一个消息,kafka还可以用作区块链做共识(颜色必须够骚),大家都来涨涨姿势。
说完上面的话,大家是不是对我的崇拜一下就起来啦。
正文(大家肃静!)
本人下载的是apache-zookeeper-3.5.8-bin.tar.gz,kafka_2.12-2.5.0.tgz版本的压缩包。
运行kafka是需要在zookeeper注册的。
启动zookeeper的集群
1.
先把apache-zookeeper-3.5.8-bin.tar.gz解压,把解压后的apache-zookeeper-3.5.8-bin文件复制三个,并改名为apache-zookeeper-3.5.8-bin-0,apache-zookeeper-3.5.8-bin-1,apache-zookeeper-3.5.8-bin-2。
2.
在.\apache-zookeeper-3.5.8-bin-0\conf\zoo_sample.cfg文件复制并重命名为zoo.cfg,剩下的两个都这样操作。
3.
打开\apache-zookeeper-3.5.8-bin-0\conf\zoo.cfg文件,修改如下参数
# zookeeper的配置路径一定要用\\,否则路径不会被识别
dataDir=E:\\workAndLike\\zookeeper\\apache-zookeeper-3.5.8-bin-0\\data
clientPort=2181
server.0=127.0.0.1:8880:7770
server.1=127.0.0.1:8881:7771
server.2=127.0.0.1:8882:7772
# 这是修改zookeeper启动端口的
admin.serverPort=8080
打开\apache-zookeeper-3.5.8-bin-1\conf\zoo.cfg文件,修改如下参数
# zookeeper的配置路径一定要用\\,否则路径不会被识别
dataDir=E:\\workAndLike\\zookeeper\\apache-zookeeper-3.5.8-bin-1\\data
clientPort=2182
server.0=127.0.0.1:8880:7770
server.1=127.0.0.1:8881:7771
server.2=127.0.0.1:8882:7772
# 这是修改zookeeper启动端口的
admin.serverPort=8081
打开\apache-zookeeper-3.5.8-bin-2\conf\zoo.cfg文件,修改如下参数
# zookeeper的配置路径一定要用\\,否则路径不会被识别
dataDir=E:\\workAndLike\\zookeeper\\apache-zookeeper-3.5.8-bin-2\\data
clientPort=2183
server.0=127.0.0.1:8880:7770
server.1=127.0.0.1:8881:7771
server.2=127.0.0.1:8882:7772
# 这是修改zookeeper启动端口的
admin.serverPort=8082
4.
在.\apache-zookeeper-3.5.8-bin-0\data文件夹下新建名称为myid的文件(名称为myid,无后缀),编辑文件内容
内容为0
version-2文件夹是运行后自动生成的。
说好给大家写一篇详细的文章,还是把myid的文件打开给大家看看。
在.\apache-zookeeper-3.5.8-bin-1\data文件夹下新建名称为myid的文件(名称为myid,无后缀),编辑文件内容
内容为1,此处不贴图
在.\apache-zookeeper-3.5.8-bin-2\data文件夹下新建名称为myid的文件(名称为myid,无后缀),编辑文件内容
内容为2,此处不贴图
5.
启动zookeeper, 在bin文件夹下执行zkServer.cmd
剩下的两个同样方法启动。
**重点**
三个zookeeper是互相注册的,启动前面两个zookeeper的时候会报错,这是正常的。
这是apache-zookeeper-3.5.8-bin-0启动的报错,可以猜出来apache-zookeeper-3.5.8-bin-1启动的报错是找不到127.0.0.1:8882:7772,这是截图就不发了。
启动kafka的集群
1.
解压kafka_2.12-2.5.0.tgz压缩包,将.\kafka_2.12-2.5.0\config文件夹下的server.properties文件, 复制3个并分别改名为server1.properties,server2.properties,server3.properties
2.
对server1.properties修改
broker.id=0
# 本人是在一台机搭建集群,这改为127.0.0.1
listeners=PLAINTEXT://127.0.0.1:9092
# broker处理消息的最大线程数 处理网络io
num.network.threads=3
# broker处理磁盘IO的线程数
num.io.threads=8
log.dirs=E:\kafka_2.12-2.5.0\logs\log1
# 保留三天,也可以更短 72
log.retention.hours=72
# 对应zookeeper启动的端口
zookeeper.connect=localhost:2181,localhost:2182,localhost:2183
对server2.properties修改
broker.id=1
# 本人是在一台机搭建集群,这改为127.0.0.1
listeners=PLAINTEXT://127.0.0.1:9093
# broker处理消息的最大线程数 处理网络io
num.network.threads=3
# broker处理磁盘IO的线程数
num.io.threads=8
log.dirs=E:\kafka_2.12-2.5.0\logs\log2
# 保留三天,也可以更短 72
log.retention.hours=72
# 对应zookeeper启动的端口
zookeeper.connect=localhost:2181,localhost:2182,localhost:2183
对server3.properties修改
broker.id=2
# 本人是在一台机搭建集群,这改为127.0.0.1
listeners=PLAINTEXT://127.0.0.1:9094
# broker处理消息的最大线程数 处理网络io
num.network.threads=3
# broker处理磁盘IO的线程数
num.io.threads=8
log.dirs=E:\kafka_2.12-2.5.0\logs\log3
# 保留三天,也可以更短 72
log.retention.hours=72
# 对应zookeeper启动的端口
zookeeper.connect=localhost:2181,localhost:2182,localhost:2183
3.
启动kafka
在kafka_2.12-2.5.0下执行下面的命令
bin\windows\kafka-server-start.bat config\server1.properties
bin\windows\kafka-server-start.bat config\server2.properties
bin\windows\kafka-server-start.bat config\server3.properties
4.
4.1创建topic,同时分配了3个分区,3个备份,topic的名称为my-test
bin\windows\kafka-topics.bat --create --zookeeper localhost:2181,localhost:2182,localhost:2183 --replication-factor 3 --partitions 3 --topic my-test
效果如图:
4.2查看topic
bin\windows\kafka-topics.bat --list --zookeeper localhost:2181,localhost:2182,localhost:2183
效果如图:
4.3 查看topic为my-test的具体信息
bin\windows\kafka-topics.bat --zookeeper localhost:2181,localhost:2182,localhost:2183 --describe --topic my-test
效果如图:
4.4 启动生产者命令
bin\windows\kafka-console-producer.bat --broker-list localhost:9092,localhost:9093,localhost:9094 --topic my-test
效果如图:
4.5 启动消费者命令
bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic my-test
如果电脑内存比较小,我们可以修改kafka的启动文件来配置。
修改kafka-server-start.bat
IF NOT ERRORLEVEL 1 (
rem 32-bit OS
set KAFKA_HEAP_OPTS=-Xmx256M -Xms256M
) ELSE (
rem 64-bit OS
set KAFKA_HEAP_OPTS=-Xmx512M -Xms512M
)