测试 Linux 上的 Kafka 主要可以分为 环境检查、服务状态测试、基本生产消费测试、性能测试 等几个层面。下面给你一个从入门到实战的测试流程,适用于常见的 Kafka 2.x / 3.x 版本。
Kafka 依赖 Java:
java -version
建议:
假设 Kafka 路径为:
/opt/kafka
以下示例均基于该目录。
cd /opt/kafka
bin/zookeeper-server-start.sh config/zookeeper.properties
新版本(Kafka 3.3+)可使用 KRaft 模式(无需 Zookeeper)。
bin/kafka-server-start.sh config/server.properties
验证端口是否监听(默认 9092):
netstat -tunlp | grep 9092
# 或
ss -lntp | grep 9092
bin/kafka-topics.sh \
--create \
--topic test-topic \
--bootstrap-server localhost:9092 \
--partitions 1 \
--replication-factor 1
查看是否创建成功:
bin/kafka-topics.sh --list --bootstrap-server localhost:9092
查看 Topic 详情:
bin/kafka-topics.sh --describe --topic test-topic --bootstrap-server localhost:9092
bin/kafka-console-producer.sh \
--topic test-topic \
--bootstrap-server localhost:9092
输入消息后回车:
hello kafka
test message
打开另一个终端:
bin/kafka-console-consumer.sh \
--topic test-topic \
--from-beginning \
--bootstrap-server localhost:9092
✅ 能看到刚才发送的消息,说明 Kafka 基本功能正常。
telnet localhost 9092
或:
nc -vz localhost 9092
从另一台机器测试 Kafka 是否可访问:
telnet <kafka-server-ip> 9092
⚠️ 常见问题:
Kafka 默认配置只监听 localhost,需要修改:
# config/server.properties
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://<服务器IP>:9092
修改后重启 Kafka。
Kafka 自带性能测试脚本。
bin/kafka-producer-perf-test.sh \
--topic test-topic \
--num-records 100000 \
--record-size 1024 \
--throughput 10000 \
--producer-props bootstrap.servers=localhost:9092
输出示例:
bin/kafka-consumer-perf-test.sh \
--topic test-topic \
--messages 100000 \
--bootstrap-server localhost:9092
tail -f logs/server.log
常见错误:
broker id not consistentaddress already in usetopic already existsbin/kafka-broker-api-versions.sh --bootstrap-server localhost:9092
如果是 Kafka 3.x + KRaft:
# 生成 cluster ID
bin/kafka-storage.sh random-uuid
# 格式化日志目录
bin/kafka-storage.sh format -t <uuid> -c config/kraft/server.properties
# 启动
bin/kafka-server-start.sh config/kraft/server.properties
测试方式与普通模式一致。
| 问题 | 原因 |
|---|---|
| 生产者连不上 broker | listeners 配置错误 |
| 消费者收不到消息 | topic 不存在 / offset 问题 |
| 启动失败 | 端口占用 / Java 版本 |
| 数据丢失 | replication-factor 设置不合理 |
✅ Java 正常
✅ Kafka 端口监听
✅ Topic 创建成功
✅ 生产消息正常
✅ 消费消息正常
✅ 远程连通性正常
如果你愿意,我可以:
你现在用的是 Kafka 几.x?有没有 Zookeeper?