您当前的位置: 首页 >  kafka

凌云时刻

暂无认证

  • 0浏览

    0关注

    1437博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Kafka从上手到实践 - Kafka CLI:Topic CLI & Producer CLI | 凌云时刻

凌云时刻 发布时间:2020-06-03 18:30:00 ,浏览量:0

凌云时刻 · 技术

导读: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

吴翰清:有变革的需求,才有技术的诞生

云原生时代,消息中间件的演进路线

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

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

关注
打赏
1663816507
查看更多评论
立即登录/注册

微信扫码登录

0.0435s