欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

kafka在windows和centos下跨环境发送消息

程序员文章站 2022-03-26 21:38:42
...

参考文章:
文章一 Windows和Linux环境搭建kafka服务:https://blog.csdn.net/rico_zhou/article/details/79866076
文章二 windows下搭建Kafka运行环境:https://blog.csdn.net/u012050154/article/details/76270655
文章三 windows kafka安装及问题解决:https://blog.csdn.net/yuebao1991/article/details/72771599

windows下kafka环境搭建

1、下载zookeeper:http://archive.apache.org/dist/zookeeper/
2、下载kafka:http://kafka.apache.org/downloads

3、解压两个压缩包,在C盘目录下新建文件夹kafka,将解压后的两个文件放入其中

4、接下来我们修改必须要改的文件,进入zookeeper下的conf,会有一个zoo_smaple.cfg文件,首先将文件名改为zoo.cfg,这个是zookeeper的配置文件,其中大部分不需要修改,只有一个日志文件路径dataDir可能需要根据自己的情况修改。默认如下:

dataDir=/tmp/zookeeper

5、接下来进入kafka-xxxx/config,修改server.properties文件内容。大部分不用修改,也有一个日志文件的路径,修改为:

log.dirs=C:\kafka\kafka_2.11-0.10.0\kafka-logs

可以修改log.dirs,num.partitions是分区数量,默认1就可以了,如果zookeeper和kafka在同一ip,则zookeeper.connect不需要更改,如果不是,对应更改即可。

6、全部修改完毕之后,先启动zookeeper,进入bin目录,双击zkServer.cmd即可。zookeeper启动成功,cmd页面不要关闭。

7、进入kafka目录,启动kafka:

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

执行报错:
kafka在windows和centos下跨环境发送消息

java环境变量配置正常,应该是执行脚本的问题,下面是kafka-server-start.bat内容:

IF [%1] EQU [] (
    echo USAGE: %0 server.properties
    EXIT /B 1
)

SetLocal
IF ["%KAFKA_LOG4J_OPTS%"] EQU [""] (
    set KAFKA_LOG4J_OPTS=-Dlog4j.configuration=file:%~dp0../../config/log4j.properties
)
IF ["%KAFKA_HEAP_OPTS%"] EQU [""] (
    set KAFKA_HEAP_OPTS=-Xmx1G -Xms1G
)
%~dp0kafka-run-class.bat kafka.Kafka %*
EndLocal

可以看到里面调用的是kafka-run-class.bat,根据网上查找资料
将原文件中的

set COMMAND=%JAVA% %KAFKA_HEAP_OPTS% %KAFKA_JVM_PERFORMANCE_OPTS% %KAFKA_JMX_OPTS% %KAFKA_LOG4J_OPTS% -cp %CLASSPATH% %KAFKA_OPTS% %*

修改为:

set COMMAND=%JAVA% %KAFKA_HEAP_OPTS% %KAFKA_JVM_PERFORMANCE_OPTS% %KAFKA_JMX_OPTS% %KAFKA_LOG4J_OPTS% -cp "%CLASSPATH%" %KAFKA_OPTS% %*

主要 %CLASSPATH% 变成了 “%CLASSPATH%”, 多了一个引号。
再执行启动命令,kafka启动成功.

测试

1、进入kafka目录的\bin\windows,创建kafka的消息topics

kafka-topics.bat --create --zookeeper 10.x.x.107:2181 --replication-factor 1 --partitions 1 --topic windwsbit

指定的是远程服务器上的IP和zookeeper,topic为 windowsbit。

2、启动producer

kafka-console-producer.bat --broker-list 10.x.x.107:9092 --topic windowsbit

同样指定为远程服务器IP地址。

3、启动服务器上的consumer

sh kafka-console-consumer.sh --zookeeper 10.x.x.107:2181 --topic windowsbit --from-beginning

4、开始发送消息和接收

kafka在windows和centos下跨环境发送消息
可以看到左边cmd中发送的消息,在右边的xshell中成功接收。

相关标签: kafka