Kafka从上手到实践 - Kafka CLI:Topic CLI & Producer CLI | 凌云时刻
发布日期:2021-06-30 18:31:14 浏览次数:2 分类:技术文章

本文共 2195 字,大约阅读时间需要 7 分钟。

凌云时刻 · 技术

导读: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: 0Topic: first_topic  Partition: 1  Leader: 0  Replicas: 0  Isr: 0Topic: 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

往期精彩文章回顾

长按扫描二维码关注凌云时刻

每日收获前沿技术与科技洞见

转载地址:https://lingyun.blog.csdn.net/article/details/107036662 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:进阶之路:深入解读 Java 堆外内存 | 凌云时刻
下一篇:Kafka从上手到实践 - 庖丁解牛:Consumer | 凌云时刻

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月06日 17时02分51秒