测试 Linux 上的 Kafka,通常分为 连通性测试、功能测试、性能测试、稳定性测试 等几个层次。下面给你一套从入门到进阶的完整测试方案,适合生产前验证或日常排障。
# 查看 Kafka 进程
ps -ef | grep kafka
# 检查端口(默认 9092)
ss -lntp | grep 9092
echo ruok | nc localhost 2181
# 返回 imok 表示正常
kafka-topics.sh \
--create \
--topic test-topic \
--bootstrap-server localhost:9092 \
--partitions 3 \
--replication-factor 1
查看 Topic:
kafka-topics.sh --list --bootstrap-server localhost:9092
kafka-console-producer.sh \
--topic test-topic \
--bootstrap-server localhost:9092
输入:
hello kafka
test message
kafka-console-consumer.sh \
--topic test-topic \
--from-beginning \
--bootstrap-server localhost:9092
✅ 能消费到说明 Kafka 基本功能正常
telnet localhost 9092
# 或
nc -vz localhost 9092
使用 Kafka 自带的 kafka-producer-perf-test.sh:
kafka-producer-perf-test.sh \
--topic test-topic \
--num-records 10000 \
--record-size 1024 \
--throughput 1000 \
--producer-props bootstrap.servers=localhost:9092
kafka-producer-perf-test.sh \
--topic test-topic \
--num-records 1000000 \
--record-size 1024 \
--throughput -1 \
--producer-props bootstrap.servers=localhost:9092
kafka-consumer-perf-test.sh \
--topic test-topic \
--messages 1000000 \
--bootstrap-server localhost:9092
关注指标:
kafka-topics.sh --describe --topic test-topic --bootstrap-server localhost:9092
手动停掉一个 Broker:
kill -9 <broker-pid>
观察:
# 生产
kcat -b localhost:9092 -t test-topic -P
# 消费
kcat -b localhost:9092 -t test-topic -C
适合查看:
| 问题 | 原因 |
|---|---|
| 连接失败 | advertised.listeners 配置错误 |
| 消费不到 | 消费者组问题 |
| 数据丢失 | acks / replication 配置 |
| 性能差 | 磁盘、网络、分区数不合理 |
✅ 最小测试流程
✅ 生产级测试
如果你愿意,我可以:
你现在是在 本地测试、服务器、还是生产环境?