背景介绍

临近年底,最近在本地虚拟机部署Kafka,并通过命令方式来测试生产者和消费者,这里记录下来,方便查看。 环境前置:JDK 环境

一、搭建 Zookeeper 环境
第一步、下载安装包

推荐 官网地址 zookeeper 3.6.3 下载,这里选择的是3.6.3版本。 在这里插入图片描述

注意:从 3.5.5开始,选择 ==带有bin名称的包==,否则可能报错。 错误:找不到或无法加载主类 org.apache.zookeeper.server.quorum.QuorumPeerMain

第二步、启动zookeeper
// 启动
bin/zkServer.sh start
// 查看启动
ps -ef | grep zookeeper

启动后界面如下图所示。 在这里插入图片描述 查看启动zookeeper启动进程,如下图所示。 在这里插入图片描述

二、搭建 Kafka 环境并测试
第一步、下载kafka

推荐 Kakfa 官网 下载,这里下载的是 kafka 2.13 版本。 在这里插入图片描述

第二步、修改配置

进入 config 文件夹下,修改配置文件 server.properties,可能修改的有四处。

// 修改配置,broker 编号,集群环境需修改
broker.id=0
// broker 对外服务入口地址,这里放开注释
listeners=PLAINTEXT://:9092 
// 设置放日志文件的地址,这里在 kafka 下新建了data文件夹
log.dirs=/opt/kafka/logs/kafka-logs
// 所需zookeeper 集群地址,这里都在同一台虚拟机,暂时无需修改
zookeeper.connect=192.168.184.136:2181 
第三步、启动 Kafka

linux下通过 kafka-server-start.sh 来启动。

// 启动
bin/kafka-server-start.sh config/server.properties
// 查看
ps -ef | grep kafka
// 或者 jps 命令查看进程
jps -l

启动结果如下图所示。 在这里插入图片描述 jps 命令查看如下图所示。 在这里插入图片描述

第四步、创建主题

运用 ==kafka-topics.sh== 来创建主题 heno

// 创建主题
bin/kafka-topics.sh --bootstrap-server localhost:9092 --create --topic heno --partitions 2 --replication-factor 1
// 查看主题 list
bin/kafka-topics.sh --bootstrap-server localhost:9092 --list
// 查看详情 describe 
bin/kafka-topics.sh --bootstrap-server localhost:9092 --describe --topic heno

查看 主题详情如下图所示。 在这里插入图片描述

第五步、消费者消费消息

运用 ==kafka-console-consumer.sh== 来开启消费者监听。

// 开启heno主题的消费
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic heno

当主题heno下有生产者产生消息时,消费者会监听到并消费消息,效果如下图所示。 在这里插入图片描述

第六步、生产者发送消息

运用 ==kafka-console-producer.sh== 来开启生产者生成消息。重新开启窗口,等待以下命令执行后,在控制台 > 输入状态,这里输入的是 hello kafka。此时看 第四步 消费者等待界面,会消费这条消息。

// 生产端
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic heno

效果如下图所示。 在这里插入图片描述 以上就是kafka部署和测试的过程,可以动手试试~

错误处理

1、虚拟机内存不足 错误:OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then 处理方案:扩大虚拟机内存大小 至少2G,2核。 2、创建主题报错 错误:in thread “main” joptsimple.UnrecognizedOptionException: zookeeper is not a recognized option 处理方案:使用 –bootstrap-server localhost:9092

博客参考

【1】https://blog.csdn.net/weixin_45865428/article/details/121264496