Kafka 命令行样例大全-kafka-topics.sh 命令行示例

时间:2025-04-26 07:57:36
#!/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