Kafka快速安装与使用指南
[toc]
# 引言
这篇文章是一篇Ubuntu(Linux)环境下的Kafka安装与使用教程,通过本文,你可以非常快速搭建一个kafka的小单元进行日常开发与调测。
我是 SharkChili ,Java 开发者,Java Guide 开源项目维护者。欢迎关注我的公众号:写代码的SharkChili,也欢迎您了解我的开源项目 mini-redis:https://github.com/shark-ctrl/mini-redis (opens new window)。
为方便与读者交流,现已创建读者群。关注上方公众号获取我的联系方式,添加时备注加群即可加入。
# 安装步骤
# 下载与解压安装
首先我们需要下载一下Kafka的安装包,这里笔者采用的是通用的wget指令:
wget https://downloads.apache.org/kafka/3.9.0/kafka_2.13-3.9.0.tgz
完成下载后将项目解压与重命名,方便后续的使用:
tar -xzf kafka_2.13-3.9.0.tgz
mv kafka_2.13-3.9.0 kafka
2
# 基本配置
因为笔者是在Windows下的Linux子系统,为保证宿主机和子系统内部的Kafka可以准确连通,需打开config/server.properties文件,将IP改为你的对应主机IP以确保监听正确的网卡并接受处理请求:

对于内网测试的用户,直接手动配置为本地环回地址即可:
listeners=PLAINTEXT://127.0.0.1:9092
advertised.listeners=PLAINTEXT://127.0.0.1:9092
2
3
对于外网用户需要特别注意,对应的配置要求为:
listeners选项IP地址配置为0.0.0.0以监听所有网卡advertised.listeners配置为外网IP地址,这是客户端连接时使用的地址
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://your-public-ip:9092
2
3
# 启动测试
完成上述步骤之后,通过bin目录的zookeeper-server-start.sh脚本启动注册中心ZooKeeper,观测控制台启动日志确保无误后,可以尝试后台启动:
./bin/zookeeper-server-start.sh config/zookeeper.properties
如下图,成功绑定2181后即可说明zk启动成功了:

同理将Kafka服务端启动即可:
./bin/kafka-server-start.sh config/server.properties
# 生产者与消费者收发调测
经过上述的基本配置之后,我们已经成功的将kafka服务端启动了,以本文为例笔者的消费者会订阅transactions 这个topic,对应的启动指令为:
./bin/kafka-console-consumer.sh --bootstrap-server your-ip:9092 --topic transactions --from-beginning
因为笔者服务器ip为172.19.182.7,且主题为transactions 所以对应的执行指令为:
./bin/kafka-console-consumer.sh --bootstrap-server 172.19.182.7:9092 --topic transactions --from-beginning
确认无误后,启动一个topic为transactions的生产者投递消息,对应启动指令如下:
./bin/kafka-console-producer.sh --broker-list 172.19.182.7:9092 --topic transactions
随后我们在生产者控制台键入hello consumer:
>hello consumer
如下图,如果消费者接收消息成功,则说明本次kafka的基本配置与部署完成:

# 后台启动
确认上述流程无误后,我们可以通过后台启动的方式启动Kafka环境,对应的后台启动指令如下:
nohup ./bin/zookeeper-server-start.sh config/zookeeper.properties > zookeeper.log 2>&1 &
nohup ./bin/kafka-server-start.sh config/server.properties > kafka.log 2>&1 &
2
3
4
5
# 小结
本文简单介绍了Kafka 3.9.0版本的基本安装、配置和调测的完整步骤,希望对你有帮助。
我是 SharkChili ,Java 开发者,Java Guide 开源项目维护者。欢迎关注我的公众号:写代码的SharkChili,也欢迎您了解我的开源项目 mini-redis:https://github.com/shark-ctrl/mini-redis (opens new window)。
为方便与读者交流,现已创建读者群。关注上方公众号获取我的联系方式,添加时备注加群即可加入。