1.测试topic创建与删除
(1)创建一个测试topic,名为test-topic。创建3个分区,每个分区分配1个副本(因为是单机kafka,如果是集群的话可以分配多个副本),如果分配的副本数大于broker的数量时,会报错
bin/kafka-topics.sh --zookeeper localhost:2181 --create --topic test-topic
--partitions 3 --replication-factor 1
(2)查看topic是否创建成功
bin/kafka-topics.sh --zookeeper localhost:2181 -list
(3)查看topic的详细分区信息
bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic test-topic
书中例子:
表示该topic下有3个分区,每个分区有3个副本。每个分区的leader分别是0、1、2,表明Kafka将该topic的这3个分区均匀地在3台broker上进行了分配。
(4)删除topic
bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic test-topic
2.测试消息的生产与发送
Kafka默认提供的kafka-console-producer和kafka-console-consumer脚本。可以方便地用来测试消息的发送和读取。发送消息时,用户从键盘输入消息,按回车键后即表示发送该条消息。需要打开两个终端测试,一个用于发送消息,另一个用于棘手消息
(1)打开生产端,用于发送消息
bin/kafka-console-producer.sh --broker-list node01:9092 --topic test-topic
(2)打开消费端,接受消息
bin/kafka-console-consumer.sh --bootstrap-server node01:9092
--topic test-topic --from-beginning
3.生产者吞吐量测试
Kafka提供了性能吞吐量测试脚本,分别是kafka-producer-perf-test脚本和kafka-consumer-perf-test.
kafka-producer-perf-test用于测试producer性能的脚本,该脚本可以计算出producer在一段时间内的吞吐量和平均延时
bin/kafka-producer-perf-test.sh --topic test-topic --num-records 500000
--record-size 200 --throughput -1 --producer-props bootstrap.servers=node01:9092 acks=-1
书中例子:
可以看出Kafka producer的平均吞吐量是8MB/s,即占用64Mb/s左右的带宽,平均每秒能发送41963条消息,平均延时是2.36秒,最大延时是3.51秒,平均有50%的消息发送需要花费2.79秒,95%的消息发送需要花费3.14秒 等等。
参数的含义:
num-records:总共需要发送的消息数,本例为500000
record-size:每个记录的字节数,本例为200
throughput:每秒钟发送的记录数
4.消费者吞吐量测试
和kafka-producer-perf-test脚本类似,Kafka为consumer也提供不给了方便
bin/kafka-consumer-perf-test.sh --broker-list node01:9092 --messages 500000
--topic test-topic