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

栏目: 后端 · 发布时间: 6年前

内容简介: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再发送消息。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

高可用架构(第1卷)

高可用架构(第1卷)

高可用架构社区 / 电子工业出版社 / 2017-11-1 / 108.00元

《高可用架构(第1卷)》由数十位一线架构师的实践与经验凝结而成,选材兼顾技术性、前瞻性与专业深度。各技术焦点,均由极具代表性的领域专家或实践先行者撰文深度剖析,共同组成“高可用”的全局视野与领先高度,内容包括精华案例、分布式原理、电商架构等热门专题,及云计算、容器、运维、大数据、安全等重点方向。不仅架构师可以从中受益,其他IT、互联网技术从业者同样可以得到提升。一起来看看 《高可用架构(第1卷)》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

在线进制转换器
在线进制转换器

各进制数互转换器

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具