Kafka命令行的使用

78 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第18天,点击查看活动详情

创建topic

kafka-topics.sh --create --zookeeper node01:2181,node02:2181,node03:2181 --topic test1 --partitions 3 --replication-factor 3

分区数量,副本数量,都是必须的。 image.png

数据的形式:

主题名称-分区编号。

在Kafka的数据目录下查看。

image.png

设定副本数量,不能大于broker的数量。

查看所有的topic

kafka-topics.sh --list --zookeeper node01:2181,node02:2181,node03:2181

image.png

查看某个topic的详细信息

kafka-topics.sh --describe --zookeeper node01:2181,node02:2181,node03:2181 --topic test1

ISR: In-Sync Replicas   可以提供服务的副本。

AR = ISR + OSR

image.png

删除topic

kafka-topics.sh --delete --zookeeper node01:2181,node02:2181,node03:2181 --topic test1

生产数据

kafka-console-producer.sh

指定broker image.png

指定topic image.png

写数据的命令:

kafka-console-producer.sh --broker-list node01:9092,node02:9092,node03:9092 --topic test1

注意: 写数据,实际上就是写log, 追加日志。

可在kafka的/root/kafkadata目录下查看分区中log。

每一条数据,只存在于当前主题的一个分区中,所有的副本中,都有数据。

消费数据

kafka-console-consumer.sh --topic test1 
--bootstrap-server node01:9092,node02:9092,node03:9092

注意: 此命令会从日志文件中的最后的位置开始消费。

如果想从头开始消费:

image.png

kafka-console-consumer.sh --topic test1 --bootstrap-server node01:9092,node02:9092,node03:9092 --from-beginning

会从头(earliest)开始读取数据。

读取数据时,分区间的数据是无序的,分区中的数据是有序。

 

如果想指定groupid,可以通过参数来指定:

image.png

kafka-console-consumer.sh --topic test1 --bootstrap-server node01:9092,node02:9092,node03:9092 --from-beginning --consumer-property group.id=123

  一个topic中的数据,只能被一个groupId所属的consumer消费一次。(记录偏移量)