栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【kafka专栏】运维篇之topic主题管理

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【kafka专栏】运维篇之topic主题管理

文章目录
    • 一、创建topic
    • 二、查看所有的主题
    • 三、查看某个主题的所有分区
    • 四、删除 Topic
    • 五、修改topic分区数
    • 六、修改topic配置参数

一、创建topic
  > bin/kafka-topics.sh --bootstrap-server  
     --create --topic my_topic_name 
     --partitions 2 
     --replication-factor 3 
  • bootstrap-server配置项,用来配置kafka的borker实例服务地址,如:zimug1:9092,zimug2:9092,zimug3:9092。官方推荐如果kafka版本大于等于2.2使用--bootstrap-server替代--zookeeper (2.2以上也兼容--zookeeper)。如果是2.2之前的版本,可以使用下面的命令行
  > bin/kafka-topics.sh --zookeeper zookeeper_host:port 
     --create --topic my_topic_name 
     --partitions 2 
     --replication-factor 3 
  • create 表示创建topic
  • topic用来指定tipic的名称
  • partitions用来指定topic的分区数,topic的分区数量决定了消费者的并发消费能力,理论上分区数越多并发消费能力越高。但是实际上会受到硬件资源、网络环境的限制。分区数量可以先设定一个预估的中位数,分区数量后续可以增加,但不能减少。
  • replication-factor用来指定每个分区的副本数,不能设置大于kafka broker服务实例的数量。副本之间需要数据同步,同步数据会占用网络资源,所以不宜过大,2或者3即可。
二、查看所有的主题

通过该命令会把所有的主题全部都列出来

> bin/kafka-topics.sh --list --bootstrap-server zimug1:9092,zimug2:9092,zimug3:9092

三、查看某个主题的所有分区

下面的命令查看kafka

> bin/kafka-topics.sh --describe  
  --bootstrap-server zimug1:9092,zimug2:9092,zimug3:9092 
  --topic my_topic_name 

通过该命令查看主题topicName的分区

 Topic:my_topic_name  PartitionCount:3 ReplicationFactor:2 Configs:
      Topic: my_topic_name  Partition: 0 Leader: 0 Replicas: 0,1 Isr: 0,1
      Topic: my_topic_name  Partition: 1 Leader: 1 Replicas: 1,2 Isr: 1,2
      Topic: my_topic_name  Partition: 2 Leader: 2 Replicas: 2,0 Isr: 2,0
  • PartitionCount:partition 分区个数。
  • ReplicationFactor:每个分区的副本个数。
  • Partition:partition 编号,从 0 开始递增。
  • Leader:当前 partition主分区(负责直接读写)的breaker.id。
  • Replicas: 当前分区的副本数据所在的 breaker.id。多副本数据备份。
  • Isr:处于数据同步状态的副本所在的 breaker.id。数量应该等于ReplicationFactor,如果不相等表示副本之间的数据同步存在较大的延迟,或者某些kafka broker服务实例出现问题。
四、删除 Topic
bin/kafka-topics.sh --delete 
  --bootstrap-server zimug1:9092,zimug2:9092,zimug3:9092 
  --topic my_topic_name 
  • 若 delete.topic.enable=true,直接彻底删除该 Topic。
  • 若 delete.topic.enable=false
    • 如果当前 Topic 没有使用过即没有传输过信息:可以彻底删除。
    • 如果当前 Topic 有使用过即有过传输过信息:并没有真正删除 Topic 只是把这个 Topic 标记为删除(marked for deletion),重启 Kafka Server 后删除。

注:delete.topic.enable=true 配置信息位于配置文件 config/server.properties 中(较新的版本中无显式配置,默认为 true)。

五、修改topic分区数

增加分区数

> bin/kafka-topics.sh --alter 
--bootstrap-server zimug1:9092,zimug2:9092,zimug3:9092 
--topic my_topic_name 
--partitions 4

分区数量只能增加,不能减少。 若是减少 partition 个数,则会报如下错误信息:

org.apache.kafka.common.errors.InvalidPartitionsException: The number of partitions for a topic can only be increased. Topic my_topic_name currently has 3 partitions, 2 would not be an increase.

该命令不能用来修改副本个数。(需要使用 kafka-reassign-partitions.sh 脚本增加副本数,在《集群可用性验证》那一章节有非常具体的使用案例)

六、修改topic配置参数

该命令除了增加分区数量,还可以修改分区配置(默认使用服务器全局配置),修改之后的配置参数只对当前主题生效。如下通过--config 修改flush.messages配置参数。

> bin/kafka-topics.sh --alter 
--bootstrap-server zimug1:9092,zimug2:9092,zimug3:9092 
--topic my_topic_name 
--config flush.messages=10000

删除配置

> bin/kafka-topics.sh --alter 
 --bootstrap-server zimug1:9092,zimug2:9092,zimug3:9092 
 --topic my_topic_name 
 --delete-config flush.messages
暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1016230.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号