kafka在windows及linux下的安装使用以及kafka与springboot整合
分类:
文章
•
2023-12-21 13:37:46
kafka服务端在windows下的安装及使用
- 到kafka下载网址下载最新版,最新版包含zookeeper
- 解压,zookeeper默认端口为2181,如需要修改可以在config/zookeeper.properties配置如:
- 当集群配置时slave(从服务器)可通过config/server.properties配置其zookeeper服务端的地址如:
- 启动zookeeper:zookeeper-server-start.bat …/…/config/zookeeper.properties
- 启动kafka:kafka-server-start.bat …/…/config/server.properties
- 创建一个名为test的topic:kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
- 查看创建的topic:kafka-topics.bat --list --zookeeper localhost:2181
- 创建生产者,kafka端口为9092:kafka-console-producer.bat --broker-list localhost:9092 --topic test
- 新起一个命令行新建消费者:kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning
kafka服务端在linux下的安装及使用(linux使用vmware)
- 下载压缩包,和windows使用的一样
- 启动zookeeper

报错如下:/usr/local/kafka_2.13-2.5.0/bin/kafka-run-class.sh: 第 315 行:exec: java: 未找到,是因为系统未安装jdk的原因

安装jdk

启动zookeeper依然报错:因vmware设置的处理器个数为1,此时将vmware处理器数改为2


重启虚拟机再次执行成功:./zookeeper-server-start.sh …/config/zookeeper.properties
- 启动zookeeper后不要关掉窗口,再使用shell打开一个窗口启动kafka:./kafka-server-start.sh …/config/server.properties
- 使用shell再打开一个窗口创建主题:./kafka-topics.sh --list --zookeeper localhost:2181
- 使用shell再打开一个窗口创建生产者:./kafka-console-producer.sh --broker-list localhost:9092 --topic test
- 再使用shell打开一个窗口创建消费者:kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning,报错如下:

再次检查,后面多了一个“/”,去掉后:

因为之前在生产者推送了一条消息,再消费者启动后可以收到此消息
测试是否可以实时收到消息:忽略HHH,按backsapce时出现的乱码,结果是可以收到消息

【注】在使用shell打开zookeeper,kafka,生产者,消费者时不能关闭窗口否则会关闭相应的服务
要想在关闭时不关闭kafka服务使用以下命令启动kafka:./kafka-server-start.sh …/config/server.properties &

退出时使用exit再关掉窗口,不要使用ctrl+c或者直接可视化关闭按钮

zookeeper亦可
springboot和kafka整合
- pom.xml:
- application.yml配置如下:
- 生产者:
- 消费者:
- 测试:
浏览器输入测试路径:

控制台打印:

【注】如kafka服务端在此kafka客户端未启动推送的有消息的话,在kafka客户端启动时会获取到此消息:
测试此种情况:
1、关闭kafka客户端
2、在命令行创建生产者并发送消息:

3、启动kafka客户端,如下收到了消息,但是是中文乱码: