如何使用java / scala编写的自定义应用程序来衡量Kafka性能

时间:2018-01-19 05:38:44

标签: apache-kafka

我们正在使用kafka作为pub sub,并且想要用kafka整个系统的测试性能。

考虑到自定义应用程序层(域模型消息序列化和反序列化),kafka世界中是否有可以模拟多个发布者和订阅者来测量延迟和吞吐量的工具?

有关这方面的任何指导都会有所帮助吗?

1 个答案:

答案 0 :(得分:0)

Kafka同时包含kafka-producer-perf-testkafka-consumer-perf-test命令来计算基准测试(使用Java API)。

Example usage can be seen here

使用您自己的值在下面进行调整


设置

bin/kafka-topics.sh --zookeeper localhost:2181/kafka-local --create --topic test-rep-one --partitions 6 --replication-factor 1
bin/kafka-topics.sh --zookeeper localhost:2181/kafka-local --create --topic test-rep-two --partitions 6 --replication-factor 3

单线程,无复制

bin/kafka-run-class.sh org.apache.kafka.tools.ProducerPerformance --print-metrics --topic test-rep-one --num-records 6000000 --throughput 100000 --record-size 100 --producer-props bootstrap.servers=kafka_host:9092 buffer.memory=67108864 batch.size=8196

单线程异步3倍复制

bin/kafka-run-class.sh org.apache.kafka.tools.ProducerPerformance --print-metrics --topic test-rep-two --num-records 6000000 --throughput 100000 --record-size 100 --producer-props bootstrap.servers=kafka_host:9092 acks=1 buffer.memory=67108864 batch.size=8196

单线程,同步3倍复制

bin/kafka-run-class.sh org.apache.kafka.tools.ProducerPerformance --print-metrics --topic test-rep-two --num-records 6000000 --throughput 100000 --record-size 100 --producer-props bootstrap.servers=kafka_host:9092 acks=-1 buffer.memory=67108864 batch.size=8196

邮件大小的影响

for i in 10 100 1000 10000 100000;
do
echo ""
echo $i
bin/kafka-run-class.sh org.apache.kafka.tools.ProducerPerformance --print-metrics --topic test-rep-two --num-records  $((1000*1024*1024/$i)) --throughput 100000 --record-size $i --producer-props bootstrap.servers=kafka_host:9092 acks=1 buffer.memory=67108864 batch.size=8196
done;

消费者

消费量

kafka-consumer-perf-test --broker-list kafka_host:9092 --messages 6000000 --threads 1 --topic test-rep-two --print-metrics

3个消费者

在三台服务器上,运行:

kafka-consumer-perf-test --broker-list kafka_host:9092 --messages 6000000 --threads 1 --topic test-rep-two --print-metrics