上海古都建筑设计集团,上海办公室装修设计公司,上海装修公司高质量的内容分享社区,上海装修公司我们不是内容生产者,我们只是上海办公室装修设计公司内容的搬运工平台

kafka基本操作

guduadmin11天前

kafka基本操作,第1张

创建topic

创建一个topic(主题)。Kafka中所有的消息都是保存在主题中,要生产消息到Kafka,首先必须要有一个确定的主题。 

cd /export/server/kafka_2.12-2.4.1
# 创建名为test的主题
bin/kafka-topics.sh --create --bootstrap-server 192.168.2.3:9092 --topic test
# 查看目前Kafka中的主题
bin/kafka-topics.sh --list --bootstrap-server 192.168.2.3:9092

生产消息到Kafka

使用Kafka内置的测试程序,生产一些消息到Kafka的test主题中。

bin/kafka-console-producer.sh --broker-list 192.168.2.3:9092 --topic test

 从Kafka消费消息

使用下面的命令来消费 test 主题中的消息。

bin/kafka-console-consumer.sh --bootstrap-server 192.168.2.3:9092 --topic test --from-beginning

使用Kafka Tools操作Kafka

安装kafka tools:偏移浏览器 (kafkatool.com)

连接Kafka集群

安装Kafka Tools后启动Kafka

kafka基本操作,第2张

kafka基本操作,第3张创建topic

kafka基本操作,第4张

kafka基本操作,第5张kafka基本操作,第6张

Kafka基准测试 

基准测试

基准测试(benchmark testing)是一种测量和评估软件性能指标的活动。我们可以通过基准测试,了解到软件、硬件的性能水平。主要测试负载的执行时间、传输速度、吞吐量、资源占用率等。

基于1个分区1个副本的基准测试

测试步骤:

  1. 启动Kafka集群
  2. 创建一个1个分区1个副本的topic: benchmark
  3. 同时运行生产者、消费者基准测试程序
  4. 观察结果

创建topic

bin/kafka-topics.sh --zookeeper 192.168.2.3:2181 --create --topic benchmark --partitions 1 --replication-factor 1

生产消息基准测试

在生产环境中,推荐使用生产5000W消息,这样会性能数据会更准确些。为了方便测试,课程上演示测试500W的消息作为基准测试。

bin/kafka-producer-perf-test.sh --topic benchmark --num-records 5000000 --throughput -1 --record-size 1000 --producer-props bootstrap.servers=192.168.2.3:9092,192.168.2.4:9092,192.168.2.5:9092 acks=1

bin/kafka-producer-perf-test.sh

--topic topic的名字

--num-records 总共指定生产数据量(默认5000W)

--throughput 指定吞吐量——限流(-1不指定)

--record-size   record数据大小(字节)

--producer-props bootstrap.servers=192.168.1.20:9092,192.168.1.21:9092,192.168.1.22:9092 acks=1 指定Kafka集群地址,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 192.168.2.3:9092,192.168.2.4:9092,192.168.2.5:9092 --topic benchmark --fetch-size 1048576 --messages 5000000

bin/kafka-consumer-perf-test.sh

--broker-list 指定kafka集群地址

--topic 指定topic的名称

--fetch-size 每次拉取的数据大小

--messages 总共要消费的消息个数

data.consumed.in.MB

共计消费的数据

4768.3716MB

MB.sec

每秒消费的数量

445.6006

每秒445MB

data.consumed.in.nMsg

共计消费的数量

5000000

nMsg.sec

每秒的数量

467246.0518

每秒46.7W条

基于3个分区1个副本的基准测试

被测虚拟机:

192.168.2.3192.168.2.4192.168.2.5

inter i5 8th 8G内存

inter i5 8th 4G内存

inter i5 8th 4G内存

创建topic

bin/kafka-topics.sh --zookeeper 192.168.2.3:2181 --create --topic benchmark --partitions 3 --replication-factor 1

生产消息基准测试

bin/kafka-producer-perf-test.sh --topic benchmark --num-records 5000000 --throughput -1 --record-size 1000 --producer-props bootstrap.servers=192.168.2.3:9092,192.168.2.4:9092,192.168.2.5:9092 acks=1

测试结果:

指标

3分区1个副本

单分区单副本

吞吐量

68755.930199 records/sec

93092.533979 records/sec

每秒9.3W条记录

吞吐速率

65.57 MB/sec

(88.78 MB/sec)

每秒约89MB数据

平均延迟时间

469.37 ms avg latency

346.62 ms avg latency

最大延迟时间

2274.00 ms max latency

1003.00 ms max latency

在虚拟机上,因为都是共享笔记本上的CPU、内存、网络,所以分区越多,反而效率越低。但如果是真实的服务器,分区多效率是会有明显提升的。

消费消息基准测试

bin/kafka-consumer-perf-test.sh --broker-list 192.168.2.3:9092,192.168.2.4:9092,192.168.2.5:9092 --topic benchmark --fetch-size 1048576 --messages 5000000

指标

单分区3个副本

单分区单副本

data.consumed.in.MB

共计消费的数据

4768.3716MB

4768.3716MB

MB.sec

每秒消费的数量

265.8844MB

445.6006

每秒445MB

data.consumed.in.nMsg

共计消费的数量

5000000

5000000

nMsg.sec

每秒的数量

278800.0446

每秒27.8W

467246.0518

每秒46.7W

还是一样,因为虚拟机的原因,多个分区反而消费的效率也有所下降。

基于1个分区3个副本的基准测试

创建topic

bin/kafka-topics.sh --zookeeper 192.168.2.3:2181 --create --topic benchmark --partitions 1 --replication-factor 3

生产消息基准测试

bin/kafka-producer-perf-test.sh --topic benchmark --num-records 5000000 --throughput -1 --record-size 1000 --producer-props bootstrap.servers=192.168.2.3:9092,192.168.2.4:9092,192.168.2.5:9092 acks=1

测试结果:

指标

单分区3个副本

单分区单副本

吞吐量

29899.477955 records/sec

93092.533979 records/sec

每秒9.3W条记录

吞吐速率

28.51 MB/sec

(88.78 MB/sec)

每秒约89MB数据

平均延迟时间

1088.43 ms avg latency

346.62 ms avg latency

最大延迟时间

2416.00 ms max latency

1003.00 ms max latency

同样的配置,副本越多速度越慢。

消费消息基准测试

bin/kafka-consumer-perf-test.sh --broker-list 192.168.2.3:9092,192.168.2.4:9092,192.168.2.5:9092 --topic benchmark --fetch-size 1048576 --messages 5000000

指标

单分区3个副本

单分区单副本

data.consumed.in.MB

共计消费的数据

4768.3716MB

4768.3716MB

MB.sec

每秒消费的数量

265.8844MB

每秒265MB

445.6006

每秒445MB

data.consumed.in.nMsg

共计消费的数量

5000000

5000000

nMsg.sec

每秒的数量

278800.0446

每秒27.8W

467246.0518

每秒46.7W

网友评论

搜索
最新文章
热门文章
热门标签