Kafka性能测试实例

 

1.概述

在分布式实时数据流场景下,随着数据量的增长,对Kafka集群的性能和稳定性的要求也很高。本篇博客将从生产者和消费者两方面来做性能测试,针对具体的业务和数据量,来调优Kafka集群。

2.内容

2.1 测试环境

本次测试的环境信息由三台物理机组成,具体信息如下所示:

2.2 测试工具

Kafka系统提供了测试工具kafka-producer-perf-test.sh和kafka-consumer-perf-test.sh,通过该工具可以对生产者性能和消费者性能进行测试,获取一组最佳的参数值,进而提升生产者的发送效率和消费者的读取效率。这里如果需要实现带有线程参数功能的工具,可以修改工具源代码,新建一个kafka-producer-perf-test-0.8.sh脚本,实现内容如下:

复制代码
# 使用老版本的ProducerPerformance工具类 exec $(dirname $0)/kafka-run-class.sh kafka.tools.ProducerPerformance "$@"
复制代码

2.2.1 生产者测试参数

 

2.2.2 消费者测试参数

3.生产者测试

生产者测试,分别从线程数、分区数、副本数、Broker数、同步与异步模式、批处理大小、消息长度大小、数据压缩等维度来进行。

3.1 线程数

创建一个拥有6个分区、1个副本的Topic,设置不同的线程数并发送相同的数据量,查看性能变化。测试脚本如下:

复制代码
# 创建主题 [hadoop@dn1 ~]$ kafka-topics.sh --create --zookeeper dn1:2181, dn2:2181,  dn3:2181 --topic test_producer_perf --partitions 6 --replication-factor 1  # 设置1个线程数 [hadoop@dn1 ~]$ kafka-producer-perf-test-0.8.sh --messages 5000000  --topics test_producer_perf --threads 1 --broker-list  dn1:9092, dn2:9092,  dn3:9092  # 设置10个线程数 [hadoop@dn1 ~]$ kafka-producer-perf-test-0.8.sh --messages 5000000  --topics test_producer_perf --threads 10 --broker-list  dn1:9092,  dn2:9092, dn3:9092  # 设置20个线程数 [hadoop@dn1 ~]$ kafka-producer-perf-test-0.8.sh --messages 5000000  --topics test_producer_perf --threads 20 --broker-list  dn1:9092,  dn2:9092, dn3:9092  # 设置25个线程数 [hadoop@dn1 ~]$ kafka-producer-perf-test-0.8.sh --messages 5000000  --topics test_producer_perf --threads 25 --broker-list  dn1:9092,  dn2:9092, dn3:9092  # 设置30个线程数 [hadoop@dn1 ~]$ kafka-producer-perf-test-0.8.sh --messages 5000000  --topics test_producer_perf --threads 30 --broker-list  dn1:9092,  dn2:9092, dn3:9092
复制代码

3.1.1 测试结果

50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信