【kafka 运维】TopicCommand 运维脚本
1TopicCommand
1.Topic 创建
bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 3 --partitions 3 --topic test
相关可选参数
2.删除 Topic
bin/kafka-topics.sh --bootstrap-server localhost:9092 --delete --topic test
支持正则表达式匹配 Topic 来进行删除,只需要将 topic 用双引号包裹起来例如: 删除以create_topic_byhand_zk
为开头的 topic;
bin/kafka-topics.sh --bootstrap-server localhost:9092 --delete --topic "create_topic_byhand_zk.*"
.
表示任意匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 . 。·*·
:匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 *。.*
: 任意字符
删除任意 Topic (慎用)
bin/kafka-topics.sh --bootstrap-server localhost:9092 --delete --topic ".*?"
更多的用法请参考正则表达式
相关配置
3.Topic 分区扩容
zk 方式(不推荐)
>bin/kafka-topics.sh --zookeeper localhost:2181 --alter --topic topic1 --partitions 2
kafka 版本 >= 2.2 支持下面方式(推荐)
单个 Topic 扩容
bin/kafka-topics.sh --bootstrap-server broker_host:port --alter --topic test_create_topic1 --partitions 4
批量扩容 (将所有正则表达式匹配到的 Topic 分区扩容到 4 个)
sh bin/kafka-topics.sh --topic ".*?" --bootstrap-server 172.23.248.85:9092 --alter --partitions 4
".*?"
正则表达式的意思是匹配所有; 您可按需匹配
PS: 当某个 Topic 的分区少于指定的分区数时候,他会抛出异常;但是不会影响其他 Topic 正常进行;
相关可选参数
PS: 虽然这里配置的是全部的分区副本分配配置,但是正在生效的是新增的分区;比如: 以前 3 分区 1 副本是这样的
现在新增一个分区,--replica-assignment
2,1,3,4 ; 看这个意思好像是把 0,1 号分区互相换个 Broker
但是实际上不会这样做,Controller 在处理的时候会把前面 3 个截掉; 只取新增的分区分配方式,原来的还是不会变
4.查询 Topic 描述
1.查询单个 Topic
sh bin/kafka-topics.sh --topic test --bootstrap-server xxxx:9092 --describe --exclude-internal
2.批量查询 Topic(正则表达式匹配,下面是查询所有 Topic)
sh bin/kafka-topics.sh --topic ".*?" --bootstrap-server xxxx:9092 --describe --exclude-internal
支持正则表达式匹配 Topic,只需要将 topic 用双引号包裹起来
相关可选参数
5.查询 Topic 列表
1.查询所有 Topic 列表
sh bin/kafka-topics.sh --bootstrap-server xxxxxx:9092 --list --exclude-internal
2.查询匹配 Topic 列表(正则表达式)
查询
test_create_
开头的所有 Topic 列表sh bin/kafka-topics.sh --bootstrap-server xxxxxx:9092 --list --exclude-internal --topic "test_create_.*"
相关可选参数
关于作者:石臻臻的杂货铺, 专注于 Java 领域、大数据领域 等知识分享, 内容多为 原理 、源码、实战 等等, 坚持输出干货,所写内容必定经过验证,并深入源码分析,保证内容准确性, 长期在 CSDN、和公众号【石臻臻的杂货铺】发布原创文章,欢迎关注! 如果有相关技术领域问题,欢迎进群交流,各个领域都有专人解答,你所问的,都会得到回应!
欢迎 Star 和共建由滴滴开源的 kafka 的管理平台满足所有开发运维日常需求
版权声明: 本文为 InfoQ 作者【石臻臻的杂货铺】的原创文章。
原文链接:【http://xie.infoq.cn/article/adc5c73ec4710ff24c7f9b97b】。未经作者许可,禁止转载。
评论