本小节主要介绍如何通过 Kafka 客户端命令行对 Topic 进行管理。

您也可以通过 Kafka Manager 管理和修改 Topic 配置,详细操作请参见 Kafka Manager > Topic 管理

创建 Topic

  • Kafka 未开启 SASL

    cd /opt/kafka/current/bin
    ./kafka-topics.sh --create --topic <topic_name> --bootstrap-server <Kafka 连接地址> --partitions <partition_num> --replication-factor <replication_num>
  • Kafka 已开启 SASL

    cd /opt/kafka/current/bin
    ./kafka-topics.sh --create --topic <topic_name> --bootstrap-server <Kafka 连接地址> --partitions <partition_num> --replication-factor <replication_num> --command-config /ssl/kafka.config

查看 Topic

查看集群所有 Topic

  • Kafka 未开启 SASL

    cd /opt/kafka/current/bin
    ./kafka-topics.sh --list --bootstrap-server <Kafka 连接地址>
  • Kafka 已开启 SASL

    cd /opt/kafka/current/bin
    ./kafka-topics.sh --list --bootstrap-server <Kafka 连接地址> --command-config /ssl/kafka.config

平衡分区 leader

平衡 topic 分区 leader

  • Kafka 未开启 SASL

    cd /opt/kafka/current/bin
    ./kafka-preferred-replica-election.sh --bootstrap-server <Kafka 连接地址>
  • Kafka 已开启 SASL

    cd /opt/kafka/current/bin
    ./kafka-preferred-replica-election.sh --bootstrap-server <Kafka 连接地址> --command-config /ssl/kafka.config

更改 Topic 配置参数

更改 Topic 配置参数(也可以在创建的时候指定,例如创建时候最后跟上 --config a=b --config x=y)

  • Kafka 未开启 SASL

    cd /opt/kafka/current/bin
    ./kafka-configs.sh --bootstrap-server <Kafka 连接地址> --entity-type topics --entity-name <topic_name> --alter --add-config <para_name>=<para_value>
  • Kafka 已开启 SASL

    cd /opt/kafka/current/bin
    ./kafka-configs.sh --bootstrap-server <Kafka 连接地址> --entity-type topics --entity-name <topic_name> --alter --add-config <para_name>=<para_value> --command-config /ssl/kafka.config

修改 Topic 分区

  • Kafka 未开启 SASL

    cd /opt/kafka/current/bin
    ./kafka-topics.sh --bootstrap-server <Kafka 连接地址> --alter --topic <topic_name> --partitions <partition_num>
  • Kafka 已开启 SASL

    cd /opt/kafka/current/bin
    ./kafka-topics.sh --bootstrap-server <Kafka 连接地址> --alter --topic <topic_name> --partitions <partition_num> --command-config /ssl/kafka.config

删除 Topic

  • Kafka 未开启 SASL

    cd /opt/kafka/current/bin
    ./kafka-topics.sh --bootstrap-server <Kafka 连接地址> --delete --topic <topic_name>
  • Kafka 已开启 SASL

    cd /opt/kafka/current/bin
    ./kafka-topics.sh --bootstrap-server <Kafka 连接地址> --delete --topic <topic_name> --command-config /ssl/kafka.config