#!/bin/bash
# 1. 创建主题
# --create: 创建主题
# --bootstrap-server: 指定Kafka服务器地址
# --topic: 主题名称
# --partitions: 分区数
# --replication-factor: 副本因子
kafka-topics.sh --create \
--bootstrap-server localhost:9092 \
--topic my-topic \
--partitions 4 \
--replication-factor 2
# 2. 列出所有主题
# --list: 列出所有主题
kafka-topics.sh --list \
--bootstrap-server localhost:9092
# 3. 查看主题详情
# --describe: 查看主题详细信息
# --topic: 指定主题名称
kafka-topics.sh --describe \
--bootstrap-server localhost:9092 \
--topic my-topic
# 4. 增加分区数
# --alter: 修改主题配置
# --partitions: 新的分区数(只能增加不能减少)
kafka-topics.sh --alter \
--bootstrap-server localhost:9092 \
--topic my-topic \
--partitions 8
# 5. 删除主题
# --delete: 删除主题
kafka-topics.sh --delete \
--bootstrap-server localhost:9092 \
--topic my-topic
# 6. 自定义副本分配创建主题
# --replica-assignment: 手动指定分区副本分配方案
# 格式: "broker_id:broker_id,broker_id:broker_id"
kafka-topics.sh --create \
--bootstrap-server localhost:9092 \
--topic custom-topic \
--replica-assignment "1:2,2:3,3:1"
# 7. 创建带配置的主题
# --config: 指定主题级别的配置
kafka-topics.sh --create \
--bootstrap-server localhost:9092 \
--topic configured-topic \
--partitions 4 \
--replication-factor 2 \
--config cleanup.policy=delete \
--config retention.ms=604800000 \
--config segment.bytes=1073741824
# 8. 查看特定分区的详情
# --topic: 指定主题
# --partition: 指定分区
kafka-topics.sh --describe \
--bootstrap-server localhost:9092 \
--topic my-topic \
--partition 0
# 9. 查看主题的配置覆盖
# --describe: 查看配置
# --entity-type: 实体类型(topics)
# --entity-name: 主题名称
kafka-configs.sh --describe \
--bootstrap-server localhost:9092 \
--entity-type topics \
--entity-name my-topic
# 10. 修改主题配置
# --alter: 修改配置
# --add-config: 添加或修改配置
kafka-configs.sh --alter \
--bootstrap-server localhost:9092 \
--entity-type topics \
--entity-name my-topic \
--add-config retention.ms=86400000
# 11. 删除主题配置
# --delete-config: 删除配置项
kafka-configs.sh --alter \
--bootstrap-server localhost:9092 \
--entity-type topics \
--entity-name my-topic \
--delete-config retention.ms
# 12. 查看主题的分区副本分配情况
# --topics-with-overrides: 显示所有配置被覆盖的主题
kafka-topics.sh --describe \
--bootstrap-server localhost:9092 \
--topics-with-overrides
# 13. 查看未同步的副本
# --under-replicated-partitions: 显示所有未完成同步的分区
kafka-topics.sh --describe \
--bootstrap-server localhost:9092 \
--under-replicated-partitions
# 14. 查看没有leader的分区
# --unavailable-partitions: 显示所有没有leader的分区
kafka-topics.sh --describe \
--bootstrap-server localhost:9092 \
--unavailable-partitions
# 15. 批量查看多个主题
kafka-topics.sh --describe \
--bootstrap-server localhost:9092 \
--topic "topic1,topic2,topic3"
# 16. 查看主题的详细指标
kafka-topics.sh --describe \
--bootstrap-server localhost:9092 \
--topic my-topic \
--report-detailed