Apache Kafka是一个快速且可扩展的消息队列系统,能够处理大量的读写负载。本文将指导如何在Windows系统上安装和配置Kafka及其依赖的Zookeeper服务。
Kafka需要Zookeeper实例来运行,用于实现可靠的分布式协调。可以在以下链接了解更多关于Kafka和Zookeeper的信息:
还可以参考以下视频了解如何在Windows上设置Kafka。
首先,需要下载以下文件:
开始JRE的安装过程,并勾选“更改目标文件夹”选项,然后点击安装。将安装目录更改为文件夹名称中不包含空格的任何路径。例如,C:\Java\jre1.8.0_xx\。(默认路径为C:\Program Files\Java\jre1.8.0_xx),然后点击下一步。
接下来,通过控制面板 -> 系统 -> 高级系统设置 -> 环境变量…打开系统环境变量对话框。
在用户变量部分点击“新建…”按钮,然后在变量名中输入JAVA_HOME,并在变量值中输入JRE路径。它应该看起来像这样:
C:\Java\jre1.8.0_xx\
现在点击确定。在“系统变量”部分的“环境变量”对话框中搜索Path变量。编辑路径,并在已经写入的文本末尾添加“;%JAVA_HOME%\bin”。
为了确认Java的安装,请打开命令提示符并输入“java --version”,应该能够看到刚刚安装的Java版本。如果命令提示符看起来像上面的图片,那么已经准备好了。否则,需要重新检查设置版本是否与操作系统架构(x86,x64)匹配,或者环境变量路径是否正确。
转到Zookeeper配置目录。例如,C:\zookeeper-3.4.7\conf。
将文件“zoo_sample.cfg”重命名为“zoo.cfg”。使用文本编辑器(如记事本++)打开zoo.cfg。
找到并编辑“dataDir=/tmp/zookeeper”为“dataDir=C:\zookeeper-3.4.7\data”。
按照为Java所做的方式,在系统环境变量中添加ZOOKEEPER_HOME:
C:\zookeeper-3.4.7
编辑系统变量名为“Path”的变量,在末尾添加“;%ZOOKEEPER_HOME%\bin;”。可以在zoo.cfg文件中更改默认的Zookeeper端口(默认端口2181)。
通过打开新的命令提示符并输入zkserver来运行Zookeeper。将在命令提示符中看到一些详细信息。
恭喜,Zookeeper正在端口2181上运行。
转到Kafka配置目录。例如,C:\kafka_2.11-0.9.0.0\config。
编辑文件“server.properties”,找到并编辑行“log.dirs=/tmp/kafka-logs”为“log.dir= C:\kafka_2.11-0.9.0.0\kafka-logs”。
如果Zookeeper在其他机器或集群上运行,可以编辑“zookeeper.connect=localhost:2181”为自定义IP和端口。对于这个演示,使用相同的机器,所以不需要更改。Kafka端口和broker.id也可以在此文件中配置。保留其他设置不变。
Kafka将在默认端口9092上运行,并连接到Zookeeper的默认端口2181。
请确保在启动Kafka服务器之前,Zookeeper已经运行。
转到Kafka安装目录C:\kafka_2.11-0.9.0.0\。
通过按住Shift键并右键单击选择“打开命令窗口”选项,在这里打开命令提示符。
现在输入.\bin\windows\kafka-server-start.bat .\config\server.properties并按回车键。如果一切顺利,命令提示符将看起来像这样:
现在Kafka已经运行,可以创建主题,并从Java/Scala代码和命令提示符中生产或消费数据。
现在创建一个名为“test”的主题,复制因子为1,因为只有一个Kafka服务器在运行。如果有一个集群并且有多个Kafka服务器在运行,可以相应地增加复制因子,这将增加数据的可用性并充当容错系统。
在C:\kafka_2.11-0.9.0.0\bin\windows位置打开新的命令提示符。
输入以下命令并按回车键:
kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
在C:\kafka_2.11-0.9.0.0\bin\windows位置打开新的命令提示符。
要启动生产者,请输入命令:
kafka-console-producer.bat --broker-list localhost:9092 --topic test
再次在C:\kafka_2.11-0.9.0.0\bin\windows位置打开新的命令提示符。
现在通过输入命令启动消费者:
kafka-console-consumer.bat --zookeeper localhost:2181 --topic test
现在将有两个命令提示符。
现在在生产者命令提示符中输入任何内容并按回车键,应该能够在另一个消费者命令提示符中看到消息。
如果能够在消费者端推送并看到消息,那么已经完成了Kafka的设置。
相信这篇文章对于初学者和中级程序员来说,将有助于在他们的Windows服务器或桌面上启动Kafka服务器。