Kafka从上手到实践-Kafka CLI:Topic CLI & Producer CLI

Kafka CLI是Kafka Command Line Interface。其实就是Kafka的命令行工具,可以让我们在终端里方面的进行Kafka的操作,比如创建Topic、Partition、Replication、Produce data、Consume data等等。后续的几个章节主要来介绍如何使用Kafka CLI。

Topic CLI

首先我们可以通过下面的命令创建Topic:

kafka-topics.sh —zookeeper 127.0.0.1:2181 —topic xxxx_topic —create —partitions 3 —replication-factor 1

这里需要注意一点,replication-factor不能大于Broker的数量,这个很好理解,前文中有过阐述。成功后可以看Created topic "first_topic".这样的提示。

可以通过如下命令查看当前有哪些Topic:

kafka-topics.sh --zookeeper 127.0.0.1:2181  --list

可以通过如下命令查看某个Topic的具体信息:

kafka-topics.sh --zookeeper 127.0.0.1:2181  --topic first_topic --describe

显示该Topic的Partition信息、Leader信息、ISR信息、Replication信息:

Topic:first_topic	PartitionCount:3	ReplicationFactor:1	Configs:
Topic: first_topic	Partition: 0	Leader: 0	Replicas: 0	Isr: 0
Topic: first_topic	Partition: 1	Leader: 0	Replicas: 0	Isr: 0
Topic: first_topic	Partition: 2	Leader: 0	Replicas: 0	Isr: 0

这里注意,Partition后面的数字是序号,因为我们设置了三个Partition。Leader、Replicas、Isr后面的数字是Broker的ID,在server.properties配置文件中可以配置Broker的ID,默认从0开始。

可以通过如下命令删除Topic:

kafka-topics.sh --zookeeper 127.0.0.1:2181  --topic second_topic --delete

这里要注意,Broker有一个配置项delete.topic.enable,如果设为false,那么删除Topic时并非立即删除,只是会被打上删除的标记,以减少Topic突然删除给业务带来的冲击。如果设为true,那么就是立即删除,默认是true

现在大家可以到/kafka_2.12-2.0.0/data/kafka目录中看一下,可以看到Partition的目录,和一些Checkpoint的文件。

Producer CLI

再来看看如何通过CLI启动Producer发送消息,命令如下:

kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic first_topic --producer-property acks=1

  • kafka-console-producer.sh是启动Producer的命令。
  • --broker-list设置连接的Broker地址,指定要连接哪个Broker。端口号9092是默认的,在server.properties文件中可以通过port属性更改,IP地址可以通过host.name属性更改。
  • --topic设置Topic名称,指定要往哪个Topic里发送消息。
  • --producer-property配置Producer的参数,这里要指定ACK的策略。

然后就可以发送消息了:

kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic first_topic --producer-property acks=1
>hello this is a producer
>I am JaceFu
>Kafka is a awesome MQ system

这里需要注意一点,如果在命令中指定的Topic不存在,则Kafka会自动创建这个Topic,Partition数量会根据server.properties中配置的num.partitions数创建。但建议应该提前创建好Topic再发送消息。

总结

这一章节介绍了如何使用Kafka的Topic CLI创建Topic、查看Topic信息。然后使用Producer CLI生产Message。结合之前对它们概念的介绍,能让我们有更直观的认知。下一章节会介绍如何使用Consumer CLI。希望能给小伙伴们带来帮助。

分享到: