检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
Kafka支持减少分区数吗? Kafka不支持减少分区数,您可以通过删除原先的Topic,然后创建新Topic,重新设置分区数。 父主题: Topic和分区问题
如何扩总分区? 增加基准带宽/代理数量,可以扩大总分区数。 在Kafka控制台的实例所在行,单击“更多 > 变更规格”,进入变更规格页面,根据实际情况扩容基准带宽/代理数量。具体操作请参考变更Kafka实例规格。 父主题: Topic和分区问题
request.topic = "{topic}" request.partition = {partition} response = client.show_partition_message(request) print(response)
为什么限制Topic的总分区数? Kafka以分区为粒度管理消息,分区多导致生产、存储、消费都碎片化,影响性能稳定性。在使用过程中,当Topic的总分区数达到上限后,用户就无法继续创建Topic。 不同规格配置的Topic总分区数不同,如下表所示。 表1 Kafka集群实例规格 规格名称
Topic和分区问题 Kafka实例的Topic数量是否有限制? 为什么限制Topic的总分区数? Kafka支持减少分区数吗? Kafka实例创建Topic失败 Kafka实例支持批量导入Topic功能么?或者是自动生成Topic功能? Kafka实例是否支持查看单个Topic占用磁盘空间?
Topic详情界面 输入分区数,单击“Add Partitions”。 出于性能考虑,建议单个Topic的分区数设置为200以内。 图2 增加分区数量 显示“Done”,表示分区增加成功。 图3 分区增加成功 在客户端修改Topic分区数 Kafka客户端版本为2.2以上时,支持通过kafka-topics
请求参数 表2 请求Body参数 参数 是否必选 参数类型 描述 partition 否 Integer 期望调整分区后的数量,必须大于当前分区数量,小于等于 100。 响应参数 无 请求示例 增加Topic分区数。 POST https://{endpoint}/v2/{pro
、中横线、下划线以及数字。 partition 是 Integer 分区编号。 请求参数 无 响应参数 状态码: 200 表2 响应Body参数 参数 参数类型 描述 topic String Topic名称。 partition Integer 分区编号。 offset Integer
、中横线、下划线以及数字。 partition 是 Integer 分区编号。 请求参数 无 响应参数 状态码: 200 表2 响应Body参数 参数 参数类型 描述 topic String Topic名称。 partition Integer 分区编号。 offset Integer
说明 partition Integer 是 期望调整分区后的数量,必须大于当前分区数量,小于等于100。 请求示例 { "partition": 3 } 响应消息 响应参数 无 响应示例 无 状态码 操作成功的状态码。 表3 状态码 状态码 描述 204 新增分区操作成功。
Topic名称。 partition Integer 是 分区编号。 请求消息 请求参数 无 请求示例 无 响应消息 响应参数 参数说明见表2。 表2 响应参数说明 参数 类型 说明 topic String topic名称。 partition Integer 分区编号。 message_offset
partitions objects 分区数组 表4 partitions 参数 参数类型 描述 partition Integer 分区ID start_offset Long 起始偏移量 last_offset Long 最后偏移量 message_count Long 分区消息数 last_update_time
修改Kafka分区平衡 分区平衡是指将分区的副本重新分配到不同的代理上,解决代理负载不均衡问题。 需要进行分区平衡的场景如下: 实例扩容代理个数后,新创建的Topic才会分布在新代理上,原有Topic还分布在原有代理上,造成分区分布不均衡。通过修改分区平衡,将原有Topic分区的副本迁移到新代理上。
单击“Manual Partition Assignments”,进入修改分区Leader页面。 图1 Topic详情页面 图2 修改分区Leader页面 以修改分区2的Leader为例介绍(Replica 0即为分区Leader),如上图所示,分区2的Leader为2。 修改分区Leader,单击“Save
TopicAssignment 参数 是否必选 参数类型 描述 partition 否 Integer 手动指定分配方案时的分区号。 partition_brokers 否 Array of integers 手动指定某个分区将要分配的broker列表 响应参数 状态码: 200 表5
Topic数量和Topic总分区数、每个Topic的分区数有关,Kafka实例对Topic总分区数设置了上限,当达到上限后,会导致用户无法继续创建Topic。 不同规格配置的Topic总分区数不同,如下表所示。 表1 Kafka集群实例规格 规格名称 代理个数范围 单个代理TPS 单个代理分区上限 单个代理建议消费组数
partitions Array of object partitions 是 期望调整的分区副本分配情况。参数参考表3。 表3 partitions参数说明 参数 类型 必选 说明 partition Integer 是 分区ID。 replicas Array of integer 是 副本期望所在的broker
partitions 否 Array of partitions objects 期望调整的分区副本分配情况。 表3 partitions 参数 是否必选 参数类型 描述 partition 否 Integer 分区ID。 replicas 否 Array of integers 副本期望所在的broker
可能原因:已创建的Topic,分区数之和达到实例规格的分区数上限。不同规格实例配置的分区数上限不同,具体请参考Kafka单机实例规格和Kafka集群实例规格。 解决方案:对Kafka实例扩容,或者删除不需要的Topic。 父主题: Topic和分区问题
要设置用户权限的Topic所在行,单击“设置用户权限”,为用户设置不同的权限。 具体操作请参考设置Topic权限。 父主题: Topic和分区问题