温馨提示×

如何测试Linux Kafka

小樊
46
2026-08-17 03:25:11
栏目: 智能运维

测试 Linux 上的 Kafka,通常分为 连通性测试、功能测试、性能测试、稳定性测试 等几个层次。下面给你一套从入门到进阶的完整测试方案,适合生产前验证或日常排障。


一、环境准备确认

1️⃣ 检查 Kafka 是否正常运行

# 查看 Kafka 进程
ps -ef | grep kafka

# 检查端口(默认 9092)
ss -lntp | grep 9092

2️⃣ 确认 Zookeeper / KRaft 状态

  • Kafka 2.8+ 可使用 KRaft(无 Zookeeper)
  • 老版本:
echo ruok | nc localhost 2181
# 返回 imok 表示正常

二、基础功能测试(最重要)

1️⃣ 创建 Topic

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

2️⃣ 生产消息测试(Producer)

kafka-console-producer.sh \
  --topic test-topic \
  --bootstrap-server localhost:9092

输入:

hello kafka
test message

3️⃣ 消费消息测试(Consumer)

kafka-console-consumer.sh \
  --topic test-topic \
  --from-beginning \
  --bootstrap-server localhost:9092

✅ 能消费到说明 Kafka 基本功能正常


三、连通性 & 网络测试

1️⃣ 测试端口是否可达

telnet localhost 9092
# 或
nc -vz localhost 9092

2️⃣ Java 客户端测试(推荐)

使用 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

四、性能测试(压测)

1️⃣ 生产性能测试

kafka-producer-perf-test.sh \
  --topic test-topic \
  --num-records 1000000 \
  --record-size 1024 \
  --throughput -1 \
  --producer-props bootstrap.servers=localhost:9092

2️⃣ 消费性能测试

kafka-consumer-perf-test.sh \
  --topic test-topic \
  --messages 1000000 \
  --bootstrap-server localhost:9092

关注指标:

  • 吞吐量(MB/s)
  • 延迟(ms)
  • 消息丢失率

五、可靠性 & 容错测试

1️⃣ 副本测试

kafka-topics.sh --describe --topic test-topic --bootstrap-server localhost:9092

手动停掉一个 Broker:

kill -9 <broker-pid>

观察:

  • Leader 是否切换
  • ISR 是否变化

2️⃣ 消息不丢失测试

  • acks=all
  • min.insync.replicas > 1
  • 重启 Broker 后消费数据是否完整

六、Kafka 工具测试(推荐)

1️⃣ kcat(原 kafkacat)

# 生产
kcat -b localhost:9092 -t test-topic -P

# 消费
kcat -b localhost:9092 -t test-topic -C

2️⃣ Kafka UI(图形化)

  • Kafka UI
  • CMAK(Kafka Manager)
  • Redpanda Console

适合查看:

  • Topic / Partition
  • Lag
  • Broker 状态

七、常见测试失败原因

问题 原因
连接失败 advertised.listeners 配置错误
消费不到 消费者组问题
数据丢失 acks / replication 配置
性能差 磁盘、网络、分区数不合理

八、推荐测试流程(总结)

最小测试流程

  1. 创建 Topic
  2. Console Producer 发送
  3. Console Consumer 接收
  4. 端口 & 网络检查

生产级测试

  • 性能压测
  • Broker 容错
  • 消费者 Lag 监控
  • 磁盘 & CPU 监控

如果你愿意,我可以:

  • ✅ 帮你写 Kafka 测试脚本
  • ✅ 针对 KRaft / Zookeeper 给不同方案
  • ✅ 结合 Docker / 生产环境 给你定制测试方案

你现在是在 本地测试、服务器、还是生产环境

0