更新时间:2024-05-29 GMT+08:00
修改Kafka Topic分区数
创建Kafka实例Topic成功之后,您可以根据业务需要修改Topic的分区数。分区数只支持增加,不支持减少。
修改分区数,不会重启实例,不会影响业务。
修改Topic分区数的方法如下:
方法1:在控制台修改Topic分区数
- 登录管理控制台。
- 在管理控制台左上角单击,选择区域。
请选择Kafka实例所在的区域。
- 在管理控制台左上角单击,选择“应用服务 > 分布式消息服务 Kafka”,进入分布式消息服务Kafka专享版页面。
- 单击Kafka实例的名称,进入实例详情页面。
- 在左侧导航栏选择“Topic管理”,进入Topic列表页面。
- 通过以下任意一种方法,修改Topic分区数。
- 勾选Topic名称左侧的方框,可选一个或多个,单击信息栏左上侧的“编辑Topic”。
- 在待修改分区数的Topic所在行,单击“编辑”。
- 在“编辑Topic”对话框中,输入分区数,单击“确定”。
- 分区数只支持增加,不支持减少。
- 出于性能考虑,Kafka控制台限定单个Topic的分区数上限为200。
- 所有Topic分区数总和不能超过实例允许的分区上限。
方法2:在Kafka Manager上修改Topic分区数
- 登录Kafka Manager。
- 在Kafka Manager中,单击“Topic > List”,进入Topic列表界面。
- 单击Topic名称,进入Topic详情界面。
- 单击“Add Partitions”,进入增加分区界面。
图1 Topic详情界面
- 输入分区数,单击“Add Partitions”。
图2 增加分区数量
显示“Done”,表示分区增加成功。
图3 分区增加成功
- 分区数只支持增加,不支持减少。
- 所有Topic分区数总和不能超过实例允许的分区上限。
方式3:在Kafka客户端上修改Topic分区数
Kafka客户端版本为2.2以上时,支持通过kafka-topics.sh修改Topic分区数。
已开启SASL的实例,“allow.everyone.if.no.acl.found”设置为“false”时,无法通过客户端修改Topic分区数。
- 未开启SASL的Kafka实例,在“/{命令行工具所在目录}/kafka_{version}/bin/”目录下,通过以下命令修改Topic分区数。
./kafka-topics.sh --bootstrap-server {broker_ip}:{port} --topic {topic_name} --alter --partitions {partition_num}
- 已开启SASL的Kafka实例,通过以下步骤修改Topic分区数。
- (可选)如果已经设置了用户名和密码,以及SSL证书配置,请跳过此步骤。否则请执行以下操作。
在Kafka客户端的“/config”目录中创建“ssl-user-config.properties”文件,参考3增加用户名和密码,以及SSL证书配置。
- 在“/{命令行工具所在目录}/kafka_{version}/bin/”目录下,通过以下命令修改Topic分区数。
./kafka-topics.sh --bootstrap-server {broker_ip}:{port} --topic {topic_name} --alter --partitions {partition_num} --command-config ./config/ssl-user-config.properties
- (可选)如果已经设置了用户名和密码,以及SSL证书配置,请跳过此步骤。否则请执行以下操作。
父主题: Topic管理