内容简介:Kafka CLI是Kafka Command Line Interface。其实就是Kafka的命令行工具,可以让我们在终端里方面的进行Kafka的操作,比如创建Topic、Partition、Replication、Produce data、Consume data等等。后续的几个章节主要来介绍如何使用Kafka CLI。首先我们可以通过下面的命令创建Topic:这里需要注意一点,
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从上手到实践-实践真知:搭建Zookeeper集群
- Kafka从上手到实践-实践真知:搭建单机Kafka
- Kafka从上手到实践-实践真知:Kafka Java Consumer
- Kafka从上手到实践-实践真知:Kafka Java Producer
- Nacos上手实践(基于Spring Cloud)
- Kafka从上手到实践-初步认知:Zookeeper
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。