当前位置: 首页 > news >正文

kafka主题管理详解 - kafka-topics.sh

目录

      • 基本语法
      • 常用命令选项
        • 1. 创建主题(create)
          • 注意: 复制因子不能大于可用的 broker 数量
        • 2. 查看所有主题(list)
        • 3. 查看主题详情(describe)
        • 4. 修改主题配置(alter)
          • 增加分区数
        • 5. 删除主题(delete)
        • 6. 其他有用选项
      • 常见配置参数

在 Kafka 的 KRaft 模式(无 ZooKeeper)中, kafka-topics.sh 工具用于管理主题(topics),包括创建、查看、修改和删除等操作。以下是其详细使用方法:

基本语法

kafka-topics.sh --bootstrap-server <kafka-broker-host:port> [命令选项]

注意:在 KRaft 模式下,不再使用 --zookeeper 参数,而是通过 --bootstrap-server 连接到 Kafka broker。

常用命令选项

1. 创建主题(create)
kafka-topics.sh --bootstrap-server localhost:9092 \--create \--topic <topic-name> \--partitions <num-partitions> \--replication-factor <replication-factor> \[--config <key=value>]  # 可选的主题配置

示例:

# 创建一个名为 "user-tracking" 的主题,3个分区,1个副本
kafka-topics.sh --bootstrap-server localhost:9092 \--create \--topic user-tracking \--partitions 3 \--replication-factor 1 \--config retention.ms=86400000  # 数据保留1天

在这里插入图片描述

注意: 复制因子不能大于可用的 broker 数量

在 Kafka 中,复制因子不能大于可用的 broker 数量,因为每个副本需要存储在不同的 broker 上以保证高可用性。

否则会报错:

Error while executing topic command : Unable to replicate the partition 2 time(s): The target replication factor of 2 cannot be reached because only 1 broker(s) are registered.

2. 查看所有主题(list)
kafka-topics.sh --bootstrap-server localhost:9092 --list

执行演示:
在这里插入图片描述

3. 查看主题详情(describe)
kafka-topics.sh --bootstrap-server localhost:9092 \--describe \--topic <topic-name>  # 不指定则查看所有主题详情

示例:
在这里插入图片描述

4. 修改主题配置(alter)
kafka-topics.sh --bootstrap-server localhost:9092 \--alter \--topic <topic-name> \[--partitions <new-num-partitions>]  # 只能增加分区数[--config <key=value>]  # 添加或修改配置[--delete-config <key>]  # 删除配置
增加分区数

示例:

# 增加分区数到5
kafka-topics.sh --bootstrap-server localhost:9092 \--alter \--topic user-tracking \--partitions 5

演示:
在这里插入图片描述

5. 删除主题(delete)
kafka-topics.sh --bootstrap-server localhost:9092 \--delete \--topic <topic-name>

注意:删除主题需要 broker 配置 delete.topic.enable=true(默认已开启)。
删除操作是异步的,执行完这条命令不代表主题立即就被删除了。它仅仅是被标记成“已删除”状态而已。Kafka 会在后台默默地开启主题删除操作。

演示:
在这里插入图片描述

6. 其他有用选项
  • --if-exists:操作仅在主题存在时执行(如删除、修改)
  • --if-not-exists:操作仅在主题不存在时执行(如创建)

示例:

# 仅在主题存在时删除
kafka-topics.sh --bootstrap-server localhost:9092 \--delete \--topic user-tracking \--if-exists

常见配置参数

可以通过 --config 选项设置的常用主题配置:

  • retention.ms:数据保留时间(毫秒)
  • retention.bytes:每个分区保留的数据量上限
  • cleanup.policy:清理策略(deletecompact
  • max.message.bytes:单条消息的最大字节数
http://www.lryc.cn/news/596126.html

相关文章:

  • C++ 结构体(struct)与联合体(union)
  • 逻辑回归全景解析:从数学本质到工业级优化
  • AWS PrivateLink方式访问Redis
  • NIO技术原理以及应用(AI)
  • AWS RDS 排查性能问题
  • 图像基础:从像素到 OpenCV 的入门指南
  • 基于python django深度学习的中文文本检测+识别,可以前端上传图片和后台管理图片
  • 【学习路线】Python全栈开发攻略:从编程入门到AI应用实战
  • Spring 核心知识点梳理 1
  • 2.9学习DOM和BOM (主要是获取元素的操作)
  • 【element-ui el-table】多选表格勾选时默认勾选了全部,row-key绑定异常问题解决
  • 重塑优化建模与算法设计:2025年大模型(LLM)在优化领域的应用盘点 - 1
  • MybatisPlus-16.扩展功能-枚举处理器
  • SpringMVC快速入门之核心配置详解
  • 【windows修复】解决windows10,没有【相机] 功能问题
  • Azure可靠性架构指南:构建云时代的高可用系统
  • xss-labs解答
  • 本地数据库有数据,web页面无信息显示,可能是pymysql的版本问题【pymysql连接本地数据库新旧版本的区别】
  • 【51单片机定时器T0输出10毫秒周期方波12M晶振】2022-6-28
  • Web开发 05
  • verilator如何实现RTL的仿真(腾讯混元)
  • 牛客NC16625 [NOIP2009]分数线划定(排序)
  • vue3:十八、内容管理-实现内容的数据展示,开关switch设行,tag标签展示
  • 北京-4年功能测试2年空窗-报培训班学测开-第五十七天
  • Datawhale AI 夏令营-心理健康Agent开发学习-Task1
  • React 面试题库
  • Vue 3 面试题全套题库
  • 前端面试专栏-工程化:29.微前端架构设计与实践
  • class和struct的区别
  • RAG实战指南 Day 21:检索前处理与查询重写技术