下载地址:http://kafka.apache.org/downloads
我这里现在的是 kafka_2.13-2.6.0.tgz
注意:Kakfa依赖Zookeeper,所以需要正确安装好JDK和zookeeper。
一、单机模式
① 解压缩,然后新建一个空的logs文件夹
② 进入config目录,编辑 server.properties 文件
修改 log.dirs 属性值:
配置Zookeeper:
Kakfa不指定的话,按照默认9092。
③ 启动kafka
进入bin目录的windows文件夹,这里都是windows下运行的.bat命令脚本 。
为了方便,我们在新建一个start-kafka.bat的脚本文件(与bin文件夹同级),内容如下:
.\bin\windows\kafka-server-start.bat .\config\server.properties
双击start-kafka.bat即可(启动前记得先启动zookeeper)。
④ 创建topics
进入windows文件夹,然后”Shift+鼠标右键”点击空白处打开powershell命令提示窗口,执行命令:
.\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic monitorupload
⑤ 打开一个Producer
进入windows文件夹,然后”Shift+鼠标右键”点击空白处打开powershell命令提示窗口,执行命令:
.\kafka-console-producer.bat --broker-list localhost:9092 --topic monitorupload
创建好下面的消费者后,就可用在上面这个生产者窗口输入信息了。
⑥ 打开一个Consumer
进入windows文件夹,然后”Shift+鼠标右键”点击空白处打开powershell命令提示窗口,执行命令:
.\kafka-console-consumer.bat --bootstrap-server localhost:9092 --from-beginning --topic monitorupload
⑦ 发送消息
以上打开的窗口不要关闭
然后就可以在Producer控制台窗口输入消息了。在消息输入过后,很快Consumer窗口就会显示出Producer发送的消息
二、集群模式
① 解压后复制出3份,kafka-1、kafka-2、kafka-3,创建 log 目录存放消息日志
② 修改config 文件夹下的 server.properties
# kafka-1
#broker 编号,集群内必须唯一 broker.id=1 #host 地址 host.name=127.0.0.1 #端口 port=9092 #消息日志存放地址 log.dirs=C:\install\kafka\kafka_2.13-2.6.0\logs #ZooKeeper 地址,多个用,分隔 zookeeper.connect=localhost:2181,localhost:2182,localhost:2183
# kafka-2
# broker 编号,集群内必须唯一 broker.id=2 # host 地址 host.name=127.0.0.1 # 端口 port=9093 # 消息日志存放地址 log.dirs=C:\\install\\kafkaCluster\\kafka_2.13-2.6.0-2\\logs # ZooKeeper 地址,多个用,分隔 zookeeper.connect=localhost:2181,localhost:2182,localhost:2183
# kafka-3
# broker 编号,集群内必须唯一 broker.id=3 # host 地址 host.name=127.0.0.1 # 端口 port=9094 # 消息日志存放地址 log.dirs=C:\\install\\kafkaCluster\\kafka_2.13-2.6.0-3\\logs # ZooKeeper 地址,多个用,分隔 zookeeper.connect=localhost:2181,localhost:2182,localhost:2183
③ 启动Kafka
分别通过 cmd 进入每个 Kafka 实例,输入命令启动:
bin\windows\kafka-server-start.bat .\config\server.properties
或新建start-kakfa.bat,双击bat,内容如下:
.\bin\windows\kafka-server-start.bat .\config\server.properties
问题:Windows CMD命令行解释器【输入行太长。 命令语法不正确】
解决方案:
① 使用较短的文件夹和文件的名称
② 减少文件夹树的深度
我是把kakfa的安装目录移到最简单的C盘(别忘了修改config/server.properties里面的log.dirs的位置。):
④ 创建主题Topic
.\bin\windows\kafka-topics.bat --create --zookeeper localhost:2181,localhost:2182,localhost:2183 --replication-factor 1 --partitions 1 --topic testTopic
⑤ 查看Topic列表
.\bin\windows\kafka-topics.bat --list --zookeeper localhost:2181,localhost:2182,localhost:2183
⑥ 生产消息
.\bin\windows\kafka-console-producer.bat --broker-list localhost:9092,localhost:9093,localhost:9094 --topic testTopic
⑦ 消费消息
.\bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092,localhost:9093,localhost:9094 --topic testTopic