温馨提示×

怎么测试Linux Kafka

小樊
41
2026-07-18 03:31:34
栏目: 智能运维

测试 Linux 上的 Kafka 主要可以分为 环境检查、服务状态测试、基本生产消费测试、性能测试 等几个层面。下面给你一个从入门到实战的测试流程,适用于常见的 Kafka 2.x / 3.x 版本。


一、测试前准备

1. 确认 Java 环境

Kafka 依赖 Java:

java -version

建议:

  • Java 8 / 11 / 17(Kafka 3.x 推荐 Java 11+)

2. 确认 Kafka 安装目录

假设 Kafka 路径为:

/opt/kafka

以下示例均基于该目录。


二、测试 Kafka 服务是否正常运行

1. 启动 Zookeeper(如果未使用 KRaft)

cd /opt/kafka
bin/zookeeper-server-start.sh config/zookeeper.properties

新版本(Kafka 3.3+)可使用 KRaft 模式(无需 Zookeeper)。


2. 启动 Kafka Broker

bin/kafka-server-start.sh config/server.properties

验证端口是否监听(默认 9092):

netstat -tunlp | grep 9092
# 或
ss -lntp | grep 9092

三、基础功能测试(最常用)

1. 创建 Topic

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

2. 生产消息(Producer 测试)

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

输入消息后回车:

hello kafka
test message

3. 消费消息(Consumer 测试)

打开另一个终端:

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

✅ 能看到刚才发送的消息,说明 Kafka 基本功能正常。


四、Kafka 服务连通性测试

1. 本地测试

telnet localhost 9092

或:

nc -vz localhost 9092

2. 远程测试(非常重要)

从另一台机器测试 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 性能测试(官方工具)

Kafka 自带性能测试脚本。

1. 生产性能测试

bin/kafka-producer-perf-test.sh \
--topic test-topic \
--num-records 100000 \
--record-size 1024 \
--throughput 10000 \
--producer-props bootstrap.servers=localhost:9092

输出示例:

  • records/sec
  • MB/sec
  • avg latency

2. 消费性能测试

bin/kafka-consumer-perf-test.sh \
--topic test-topic \
--messages 100000 \
--bootstrap-server localhost:9092

六、Kafka 状态与日志检查

1. 查看 Kafka 日志

tail -f logs/server.log

常见错误:

  • broker id not consistent
  • address already in use
  • topic already exists

2. 检查 Broker 状态

bin/kafka-broker-api-versions.sh --bootstrap-server localhost:9092

七、KRaft 模式测试(无 Zookeeper)

如果是 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 一键测试脚本
  • ✅ 帮你排查 具体报错日志
  • ✅ 给你 生产环境 Kafka 测试方案

你现在用的是 Kafka 几.x?有没有 Zookeeper?

0