kakfa从入门到放弃: 基础操作
Posted 浅弋、璃鱼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kakfa从入门到放弃: 基础操作相关的知识,希望对你有一定的参考价值。
文章目录
一、基础操作:
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:9092
2. 生产/消费消息
使用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-beginning
3. 使用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条) |
4.2 基于3个分区1个副本的基准测试
4.3 基于1个分区3个副本的基准测试
以上是关于kakfa从入门到放弃: 基础操作的主要内容,如果未能解决你的问题,请参考以下文章