在Linux上管理Kafka主题分区主要通过命令行工具实现,核心操作如下:
使用kafka-topics.sh脚本,通过--partitions参数指定分区数(需提前启动ZooKeeper和Kafka服务):
./kafka-topics.sh --create --bootstrap-server localhost:9092 --topic my_topic --partitions 3 --replication-factor 1
--partitions:设置分区数(正整数)。--replication-factor:设置副本数(通常≤Broker节点数)。通过--describe参数查看主题的详细分区信息,包括分区数、副本分配等:
./kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic my_topic
输出示例:
Topic: my_topic PartitionCount: 3 ReplicationFactor: 1
Partition: 0 Leader: 0 Replicas: 0 Isr: 0
Partition: 1 Leader: 0 Replicas: 0 Isr: 0
Partition: 2 Leader: 0 Replicas: 0 Isr: 0
Kafka仅支持增加分区数(无法直接减少),使用--alter参数:
./kafka-topics.sh --alter --bootstrap-server localhost:9092 --topic my_topic --partitions 5
使用--delete参数删除主题(不可逆操作,会清除所有数据):
./kafka-topics.sh --delete --bootstrap-server localhost:9092 --topic my_topic
--zookeeper参数指定ZooKeeper地址(旧版本)。Partitioner接口,通过配置partitioner.class指定。sudo或修改脚本权限(chmod +x kafka-topics.sh)。以上操作均基于Kafka自带的命令行工具,无需额外开发,适用于快速管理分区。如需更复杂的策略(如自定义分区逻辑),需结合Java客户端或Kafka Streams等工具实现。