kafka在windows下的安装和配置

时间:2022-07-24 09:27:42

博主最近在学习有关kafka的配置安装以及在spring的集成使用。但网上关于kafka的配置参考资料基本都是于linux下的配置,于是博主在整理了相关windows下kafka的配置记录在博客里。由于是简单配置所以在这里只建了一个topic以及一个producer和两个consumer。

关于kafka具体是什么以及他的设计原理使用场景等等请看上篇博客,转自大佬。传送门:http://www.cnblogs.com/wdfordream/p/7324975.html

在官网上下载 zookeeper和kafka(我下的版本kafka_2.11-0.11.0.0,这个版本中bin目录下有windows目录),注意不要下载源码包(名字中带有src),否则启动的时候会报错。

1、配置好jdk环境

2、解压zookeeper到指定目录,找到解压后目录中conf文件夹中zoo_sample - 副本.cfg文件,复制在conf中改名为zoo.cfg。在bin文件夹中打开zkServer.bat启动zookeeper。

kafka在windows下的安装和配置

至此,zookeeper启动完成。

3、解压kafka到指定目录。查看kafka根目录中config文件夹下server.properties,确认其中关于zookeeper的连接端口和zookeep中zoo.cfg的端口一致。

  3.1、启动kafka

  在cmd中进入kafka根目录。输入以下命令:

  .\bin\windows\kafka-server-start.bat .\config\server.properties

  kafka在windows下的安装和配置

  kafka启动成功

  3.2、创建topic

  在cmd中进入kafka\bin\windows目录,输入以下命令:

  kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test 

  kafka在windows下的安装和配置

  创建成功

  3.3、创建kafka producer

  在cmd中进入kafka\bin\windows目录,输入以下命令:

  kafka-console-producer.bat --broker-list localhost:9092 --topic test

  注意这里的端口和server.properties的端口号一致。

  kafka在windows下的安装和配置

  3.4创建consumer

  在cmd中进入kafka\bin\windows目录,输入以下命令:

  kafka-console-consumer.bat --zookeeper localhost:2181 --topic test

  kafka在windows下的安装和配置

  以同样的方式创建另一个consumer。

4、测试

在producer中输入一句话并回车,可以在两个consumer中得到相关信息。

kafka在windows下的安装和配置

5、其他相关命令

查看已建立的topics:kafka-topics.bat --list --zookeeper localhost:2181

查看每个节点信息  :kafka-topics.bat --describe --zookeeper localhost:2181 --topic my-replicated-topic

6、问题整理

6.1、kafka启动时报异常Caused by:java.lang.OutOfMemoryError:Map failed

在这里博主的办法是将kafka-server-run.bat里的参数set KAFKA_HEAP_OPTS=-Xmx512M -Xms512M改为256M,如果有更好的解决办法谢谢大家能告诉我。

6.2、kafka启动时报异常Caused by: java.nio.file.FileSystemException: \tmp\kafka-logs\topic.alarmMatchFace-0\00000000000000009163.log -> \tmp\kafka-logs\topic.alarmMatchFace-0\00000000000000009163.log.deleted: 另一个程序正在使用此文件,进程无法访问。

主要是因为tmp/kafka-logs文件的日志达到了1G且未被清理。由于这样的错误是在kafka服务关闭后重启kafka服务引起的,博主暂无什么好的解决方法,每次把tmp下的kafka-logs文件夹删除,再启动kafka服务就不会报错了,希望各位大大如果有好的方法能告知我一下,谢谢啦。