测试场景
- 测试场景一(实例是否开启SASL):相同的Topic,实例分为开启SASL和未开启SASL
- 测试场景二(同步/异步复制):相同的实例,不同复制机制的Topic
- 测试场景三(不同磁盘类型):相同的Topic,不同磁盘类型的实例
- 测试场景四(不同分区数):相同的实例,不同分区数的Topic
测试环境
步骤一:购买实例
名称 | 节点数量 | 规格 | 磁盘类型 | 磁盘空间 |
---|---|---|---|---|
kafka-01 | 3 | 计算增强型4核8GB | 超高IO | 500GB |
kafka-02 | 3 | 计算增强型8核16GB | 超高IO | 500GB |
kafka-03 | 3 | 计算增强型16核32GB | 超高IO | 500GB |
kafka-04 | 3 | 计算增强型4核8GB | 高IO | 500GB |
kafka-05 | 3 | 计算增强型8核16GB | 高IO | 500GB |
kafka-06 | 3 | 计算增强型16核32GB | 高IO | 500GB |
步骤二:创建Topic
名称 | 副本数 | 分区数 | 是否为私有主题 |
---|---|---|---|
topic-01 | 3 | 30 | 否 |
topic-02 | 3 | 3 | 否 |
topic-03 | 3 | 12 | 否 |
topic-04 | 3 | 100 | 否 |
步骤三:获取测试工具
点击获取命令行工具kafka_2.13-2.8.2.tgz。
步骤四:购买客户端服务器
购买3台ECS服务器(资源池、可用区、虚拟私有云、子网、安全组与Kafka实例保持一致,带宽要大于等于Kafka实例带宽)
购买完成后需要进行如下操作:
-
安装JDK
yum install -y java-1.8.0-openjdk-devel.x86_64
-
下载Kafka命令行工具并解压
tar -zxvf kafka_2.13-2.8.2.tar.gz
步骤五:测试命令
./kafka-producer-perf-test.sh --producer-props bootstrap.servers=${连接地址} acks=1 batch.size=16384 --topic ${Topic名称} --num-records 5000000 --record-size 1024 --throughput -1 --producer.config ../config/producer.properties
- bootstrap.servers:购买Kafka实例后,获取的Kafka实例的地址。
- acks:消息主从同步策略,acks=1表示异步复制消息,acks=-1表示同步复制消息。
- batch.size:每次批量发送消息的大小(单位为字节)。
- topic:创建Topic中设置的Topic名称。
- num-records:总共需要发送的消息数。
- record-size:每条消息的大小。
- throughput:每秒发送的消息数,-1表示不作限制。
测试结果
测试场景一(实例是否开启SASL):相同的Topic(30分区,3副本,异步复制)
实例规格 | 磁盘类型 | 节点数量 | TPS(使用SASL) | TPS(不使用SASL) |
---|---|---|---|---|
计算增强型4核8GB | 超高IO | 3 | 170000 | 500000 |
计算增强型8核16GB | 超高IO | 3 | 200000 | 730000 |
计算增强型16核32GB | 超高IO | 3 | 360000 | 886000 |
测试场景二(同步/异步复制):相同的实例(超高I/O、3个节点、不使用SASL)
实例规格 | 分区数 | 副本数 | TPS(同步复制) | TPS(异步复制) |
---|---|---|---|---|
计算增强型4核8GB | 30 | 3 | 238000 | 500000 |
计算增强型8核16GB | 30 | 3 | 315000 | 730000 |
计算增强型16核32GB | 30 | 3 | 375000 | 886000 |
测试场景三(不同磁盘类型):相同的Topic(30分区,3副本,异步复制)
实例规格 | 是否使用SASL | 节点数量 | TPS(高IO) | TPS(超高IO) |
---|---|---|---|---|
计算增强型4核8GB | 不使用 | 3 | 135000 | 500000 |
计算增强型8核16GB | 不使用 | 3 | 240000 | 730000 |
计算增强型16核32GB | 不使用 | 3 | 280000 | 886000 |
测试场景四(不同分区数):相同的实例(超高I/O、3个节点、不使用SASL)
实例规格 | 是否同步复制 | 副本数 | TPS(3分区) | TPS(12分区) | TPS(100分区) |
---|---|---|---|---|---|
计算增强型4核8GB | 否 | 3 | 330000 | 280000 | 260000 |
计算增强型8核16GB | 否 | 3 | 480000 | 410000 | 340000 |
计算增强型16核32GB | 否 | 3 | 534000 | 744000 | 630000 |