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从入门到放弃: 基础操作的主要内容,如果未能解决你的问题,请参考以下文章

kakfa从入门到放弃: kafka入门,环境搭建,命令行操作

kakfa从入门到放弃: golang编程操作kafka

kakfa从入门到放弃: golang编程操作kafka

kakfa从入门到放弃: golang编程操作kafka

kakfa从入门到放弃: kafka入门

kakfa从入门到放弃: 分区和副本机制