前言

想简单测试一下刚搭建的 kafka 的性能怎么样? 可以使用自带的测试程序进行简单的测试!

创建测试 topic

/opt/kafka_2.12-0.11.0.1
bin/kafka-topics.sh --zookeeper=localhost:2181 --create --topic test --replication-factor 1 --partitions 1

producer 吞吐率

只测 producer 的吞吐率,也就是数据只被持久化,没有 consumer 读数据。 使用官方提供的测试工具 kafka-producer-perf-test.sh 来测试。 kafka-producer-perf-test.sh 中参数说明:

topic:生产者发送的topic
num-records:生产者发送总的消息数量
payload-delimiter :payload-file文件里面的分割符,默认是换行符
throughput:每秒发送消息的限制
producer-props:指定kafka生产者的配置,这个配置优先与producer.config
transactional-id:事务ID,在测试事物的时候会用到
transaction-duration-ms:事物持续时间
record-size:每条消息的大小
payload-file:测试消费文件

运行测试命令:

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

consumer 吞吐率

使用官方提供的测试工具 kafka-consumer-perf-test.sh 来测试。 kafka-consumer-perf-test.sh 中参数说明:

zookeeper:zookeeper端口配置
messages:消费者消费消息总数量
topic:消费者需要消费的topic
threads:消费者使用几个线程同时消费
group:消费者组名称
socket-buffer-sizesocket: 缓冲大小
fetch-size :每次向kafka broker请求消费大小

运行测试命令:

bin/kafka-consumer-perf-test.sh --zookeeper localhost:2181 --messages 100000 --topic test --threads 1

总结

这个只是单节点的简单测试,可以根据自己的集群情况进行参数调整。可以写成脚本,同时进行生产和消费来测试性能。