凌云时刻 · 技术
导读:Kafka CLI是Kafka Command Line Interface。其实就是Kafka的命令行工具,可以让我们在终端里方面的进行Kafka的操作,比如创建Topic、Partition、Replication、Produce data、Consume data等等。后续的几个章节主要来介绍如何使用Kafka CLI。
作者 | 计缘
来源 | 凌云时刻(微信号:linuxpk)
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。希望能给小伙伴们带来帮助。
END
往期精彩文章回顾
Kafka从上手到实践 - 实践真知:搭建单机Kafka
Kafka从上手到实践 - 庖丁解牛:Consumer
Kafka从上手到实践 - 庖丁解牛:Producer
Kafka从上手到实践 - 庖丁解牛:Partition
Kafka从上手到实践 - 庖丁解牛:Topic & Broker | 凌云时刻
Kafka从上手到实践 - 初步认知:MQ系统
进阶之路:深入解读 Java 堆外内存
干货:一文看懂Apache Ranger
吴翰清:有变革的需求,才有技术的诞生
云原生时代,消息中间件的演进路线
长按扫描二维码关注凌云时刻
每日收获前沿技术与科技洞见