一、基础操作:
1. 创建topic2. 生产/消费消息3. 使用kafka tools操作kafka4. 基准测试;4.1 基于1个分区1个副本的基准测试
4.1.1 测试步骤: 4.2 基于3个分区1个副本的基准测试4.3 基于1个分区3个副本的基准测试
一、基础操作: 1. 创建topic创建一个topic, kafka中所有的消息都是保存在主题中, 要生产消息到kafka, 首先必须要有一个确定的主题:
# 创建名为test的topic bin/kafka-topic.sh --create --bootstrap-server host:9092 --topic test # 查看目前kafka中的主题 bin/kafka-topic.sh --list --bootstrap-server host:90922. 生产/消费消息
使用kafka内置的测试, 生产一些消息到kafka的test topic中
bin/kafka-console-producer.sh --broker-list host:9092 --topic test
使用下边的命令来消费test topic中的消息
bin/fakfa-console-consumer.sh --bootstrap-server host:9092 --topic test --from-beginning3. 使用kafka tools操作kafka
官方网站: kafkaTools
浏览kafka集群节点, 多少个topic, 多少个分区;创建topic/ 删除topic;浏览zookeeper中的数据; 4. 基准测试;
基准测试(benchmark testing)是这一种测量和评估软件性能指标的活动; 我们可以通过基准测试了解到软件、硬件的性能水平; 主要测试负载的执行时间, 传输速度, 吞吐量,资源占用等;
4.1 基于1个分区1个副本的基准测试 4.1.1 测试步骤:启动kafka集群;创建一个分区一个副本的tocip benchmark同时运行生产者, 消费者基准测试程序;观察结果;
创建topic:
bin/kafka-topic.sh --zookeeper host:2081 --create --topic benchmark --partitions 1 --replication-factor 1
生产者基准测试
在生产环境中, 推荐使用生产5000w消息, 这样性能数据会更准确些;
bin/kafka-producer-perf-test.sh --topic benchmark --num-records 50000000 --throughput -1 --record-size 1000 --producer-props bootstrap.servers=host1:9091,host2:9092,host3:9092 acks=1
bin/kafka-producer-perf-test.sh
–topic topic的名字
–num-records 总共指定生产数据量 (默认5000w)
–throughput 指定吞吐量–限流 (-1:不指定)
–record-size record数据大小(字节)
–producer-props 生产者的一些配置
bootstrap.servers=host1:9091,host2:9092,host3:9092 指定kafak集群
acks=1 ACK模式
测试结果:
| 吞吐量 | 93092.533979 records/sec (每秒9.3W条记录) |
|---|---|
| 吞吐速率 | (88.78 MB/sec)每秒约89MB数据 |
| 平均延迟时间 | 346.62 ms avg latency |
| 最大延迟时间 | 1003.00 ms max latency |
消费者基准测试
bin/kafka-consumer-perf-test.sh --broker-list host1:9091,host2:9092,host3:9092 ---topic benchmark --f etch-size 1048576 --massage 50000000
bin/kafka-consumer-perf-test.sh
–broker-list host1:9091,host2:9092,host3:9092 指定kafka集群地址
—topic benchmark 指定topic的名称
–fetch-size 1048576 每次拉取的数据大小
–massage 50000000 总共要消费的消费数量
| data.consumed.in.MB(共计消费的数据) | 4768.3716MB |
|---|---|
| (MB.sec)每秒消费的字节数量 | 445.6006(每秒445MB) |
| data.consumed.in.nMsg(共计消费的数量) | 5000000 |
| nMsg.sec(每秒的消息数量) | 467246.0518(每秒46.7W条) |



