kafka操作命令-主题管理

这篇具有很好参考价值的文章主要介绍了kafka操作命令-主题管理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.创建主题

2.查看主题

3.修改主题

4.删除主题


1.创建主题

1.1 创建名为:test-topic的主题,命令如下:

./kafka-topics.sh --zookeeper localhost:2181 --create --topic test-topic --replication-factor 1 --partitions 5

执行结果如下:

kafka操作命令-主题管理

 登录ZooKeeper客户端查看所创建的主题元数据信息,“test-topic”元数据信息如下:

kafka操作命令-主题管理

可以看到,该主题有5个分区、1个副本 

⭐️⭐️⭐️⭐️

1.2 在创建主题时,我们还可以通过config参数来设置主题级别的配置以覆盖默认配置,可以设置多组配置,命令如下:

./kafka-topics.sh --zookeeper localhost:2181 --create --topic test-topic-two --replication-factor 1 --partitions 6 --config max.message.bytes=404800

通过config命令设置该主题的max.message.bytes为404800字节

⭐️⭐️⭐️⭐️

1.3 相关命令解释

zookeeper:必传参数,用于配置Kafka集群与ZooKeeper连接地址。为了容错,建议多个ZooKeeper节点的集群至少传递两个ZooKeeper连接配置,多个配置之间以逗号隔开。

partitions:必传参数,用于设置主题分区数。Kafka通过分区分配策略,将一个主题的消息分散到多个分区并分别保存到不同的代理上,以此来提高消息处理的吞吐量。Kafka的生产者和消费者可以采用多线程并行对主题消息进行处理,而每个线程处理的是一个分区的数据,因此分区实际上是Kafka并行处理的基本单位。分区数越多一定程度上会提升消息处理的吞吐量,然而Kafka消息是以追加的形式存储在文件中的,这就意味着分区越多需要打开更多的文件句柄,这样也会带来一定的开销。

replication-factor:必传参数,用来设置主题副本数。副本会被分布在不同的节点上,副本数不能超过节点数,否则创建主题会失败。例如,3个节点的Kafka集群最多只能有3个副本,若创建主题时指定副本数大于3,则会抛出以下错误提示:

ERROR org.apache.kafka.common.errors.InvalidReplicationFactorException: 
Replication factor: 5 larger than available brokers: 3.

2.查看主题

2.1 list参数查看所有主题,命令如下:

./kafka-topics.sh --zookeeper localhost:2181 --list

执行结果如下:

kafka操作命令-主题管理

 可以看到当前kafka中有两个主题

⭐️⭐️⭐️⭐️

2.2 describe参数可以查看所有主题或某个特定主题的信息

2.2.1 describe查看所有主题,命令如下:

./kafka-topics.sh --zookeeper localhost:2181 --describe

执行结果如下:

kafka操作命令-主题管理

从输出结果可以看到:已按主题分组展示,每组主题信息中第一行分别展示了主题名、该主题分区总数、该主题副本总数、创建主题时通过config参数所设置的配置,从第二行开始按主题分区编号排序,展示每个分区的Leader副本节点、副本列表AR及ISR列表信息。 

⭐️⭐️⭐️⭐️

2.2.2 describe查看指定主题,命令如下:

./kafka-topics.sh --zookeeper localhost:2181 --describe --topic test-topic

执行结果如下:

kafka操作命令-主题管理

⭐️⭐️⭐️⭐️

2.3 查看正在同步的主题,命令如下:

./kafka-topics.sh --zookeeper localhost:2181 --describe --under-replicated-partitions

⭐️⭐️⭐️⭐️

2.4 查看没有Leader副本的主题,通过describe与unavailable-partitions命令组合使用,命令如下:

./kafka-topics.sh --zookeeper localhost:2181 --describe --unavailable-partitions

执行结果如下:

kafka操作命令-主题管理 可以看到Leader参数的值为none,即该主题没有Leader 副本

⭐️⭐️⭐️⭐️

2.5 查看主题覆盖的配置,通过describe与topics-with-overrides命令组合使用,命令如下:

./kafka-topics.sh --zookeeper localhost:2181 --describe --topics-with-overrides

 执行结果如下:

kafka操作命令-主题管理可以看到主题为test-topic-two(在章节1.2中创建)的max.message.bytes属性被覆盖修改为404800

3.修改主题

3.1 修改主题级别配置

3.1.1 先查看主题test-topic-two当前已覆盖的配置,命令如下:

./kafka-topics.sh --zookeeper localhost:2181 --describe --topics-with-overrides --topic test-topic-two

执行结果如下:

kafka操作命令-主题管理

可以看到max.message.bytes属性被覆盖修改为404800

⭐️⭐️⭐️⭐️

3.1.2 现在再修改主题test-topic-two的max.message.bytes属性值为204800,命令如下:

./kafka-topics.sh --zookeeper localhost:2181 --alter --topic test-topic-two --config max.message.bytes=204800

执行结果如下:

kafka操作命令-主题管理

更新配置成功,同时输出信息提示通过该方式修改主题级别配置的相关命令已过期,在未来的版本该命令将被移除,推荐使用kafka-configs.sh脚本。

⭐️⭐️⭐️⭐️

3.1.3 再次查看主题test-topic-two当前已覆盖的配置,命令如下:

./kafka-topics.sh --zookeeper localhost:2181 --describe --topics-with-overrides --topic test-topic-two

执行结果如下:

kafka操作命令-主题管理

可以看到max.message.bytes属性值已被修改为204800

3.2 新增/删除主题配置

3.2.1 覆盖主题segment.byte的大小为200M(200*1024*1024=20971520),并查看覆盖属性

kafka操作命令-主题管理

⭐️⭐️⭐️⭐️

3.2.2 再删除配置项segment.bytes的设置,使其值恢复为默认值,命令如下:

./kafka-topics.sh --zookeeper localhost:2181 --alter --topic test-topic-two --delete-config segment.bytes

注意命令:--delete-config

执行结果如下:

kafka操作命令-主题管理

可以看到在3.2.1中修改的segment.bytes属性已被还原

3.3 增加分区

3.3.1 Kafka并不支持减少分区的操作,我们只能为一个主题增加分区。主题test-topic(在章节1.1中创建)原本有5个分区,现将其分区设置为8个。命令如下:

./kafka-topics.sh --zookeeper localhost:2181 --alter --topic test-topic --partitions 8

执行结果如下:

kafka操作命令-主题管理

4.删除主题

删除Kafka主题,一般有以下两种方式:

(1)手动删除各节点${log.dir}目录下该主题分区文件夹,同时登录ZooKeeper客户端删除待删除主题对应的节点,主题元数据保存在/brokers/topics和/config/topics目录下。

(2)执行kafka-topics.sh脚本进行删除,若希望通过该脚本彻底删除主题,则需要保证在启动Kafka时所加载的server.properties文件中配置delete.topic.enable=true,该配置默认为false。否则执行该脚本并未真正删除主题,而是在ZooKeeper的/admin/delete_topics目录下创建一个与待删除主题同名的节点,将该主题标记为删除状态。

4.1 通过kafka-topics.sh删除主题。删除名为test-topic-1的主题,命令如下:

./kafka-topics.sh --zookeeper localhost:2181 --delete --topic test-topic-1

执行结果如下:

kafka操作命令-主题管理

参考书籍:《Kafka入门与实践》·牟大恩文章来源地址https://www.toymoban.com/news/detail-483181.html

到了这里,关于kafka操作命令-主题管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包