You need to enable JavaScript to run this app.
文档中心
消息队列 Kafka版

消息队列 Kafka版

复制全文
下载 pdf
常见问题
Topic和Group管理FAQ
复制全文
下载 pdf
Topic和Group管理FAQ
本文提供以下 Topic 和 Group 管理相关的常见问题,包括权限管理相关的配置操作及常见异常的原因描述和处理办法。​
Topic 是否支持 ACL 权限配置?​
支持。消息队列 Kafka版支持配置 ACL 权限策略,即指定不同 SASL 用户对于指定 Topic、Group 的权限。​
在控制台的ACL管理页签中单击新增ACL,并填写 ACL 策略。详细的操作步骤请参考创建 ACL。​
如何删除 Topic 中的消息?​
消息队列 Kafka版不支持删除指定的某一条消息,但是您可以通过删除 Topic 或修改 Topic 的消息保留时长来批量删除消息。​
  • 删除 Topic:直接删除 Topic 会同时删除此 Topic 中存储的所有消息,请谨慎操作。​
  • 修改 Topic 的消息保留时长:缩短 Topic 的消息保留时间,加速 Topic 中的消息老化速度。该方式也会批量删除消息,请谨慎操作。​
如何管理 Group 的 offset?​
Broker 会如实记录 Consumer 客户端提交的消费位点信息。通常情况下,消费位点的提交机制取决于对接的 Kafka 客户端 SDK,SDK 通过以下两种机制指定消费位点:​
  • 自动提交消费位点:Kafka 客户端 SDK 按照指定的时间间隔,将已消费的最新消息对应的位点+1 提交到 Broker。​
  • 手动提交消费位点:Kafka 客户端 SDK 通过应用程序,把消费过的最新消息的位点+1 提交到 Broker。​
您可以在控制台 Group 详情页的消费状态区域,找到指定 Topic 对应的提交offset位置一列,该位点即 Consumer 客户端提交的消费位点,Consumer 消费时,会从这个位点继续消费。详细操作步骤请参考查看 Group 详情。​
消息队列支持重置 Group 的消费位点,重置方式如下。详细的说明请参考重置消费位点。​
  • 根据最新 offset 位点重置:跳过所有堆积消息,从最新位点开始消费。堆积的消息本身并不会因此被删除。​
  • 根据时间点重置:从过去的某个指定时段内选择一个时间点开始消费。该时间段由 Topic 的消息保留时间决定。​
  • 根据指定 offset 位点重置:从当前分区的某个指定位点开始消费。重置后,Group 在当前分区中将指定位点开始消费。​
Group 不需要订阅 Topic 时,如何删除订阅关系?​
在控制台删除 Topic 或删除 Group 都无法删除订阅关系,您需要在 Kafka 客户端中取消订阅该 Topic。​
为什么会创建 Topic 失败且报错 Unexpected error code:999?​
使用火山引擎消息队列 Kafka 时,如遇创建 Topic 失败,且报错 Unexpected error code:999,说明创建的 Topic 分区超出限制。分区过多会使集群性能和稳定性急剧下降,建议单实例总分区数控制在规格上限的 80% 以内。如需更多分区总数,请通过控制台对实例进行规格变更(升配),或提交工单并联系技术人员进行咨询。​
为什么消息在 Topic 分区中分布不均衡?​
Topic 详情页中展示每个分区的存储消息数量。Producer 发送消息到指定 Topic 之后,消息在该 Topic 的不同分区中可能存在分布不均衡的现象,即部分分区中消息数量非常多,部分分区中消息数量非常少。​
这种消息在分区中分布不均衡的情况可能由以下原因造成。​
  • Producer 发送消息时,指定分区进行发送。指定分区时,消息仅发送到对应的分区,所以未被指定的分区中不会存储消息。​
  • Producer 发送消息时,指定了消息 Key。指定消息 Key 时,消息会根据 Key 存储到对应的分区。​
  • 业务逻辑中另外定义了消息在分区中的分配策略,该策略导致了消息在分区中不均衡的现象,建议排查相关的业务实现逻辑。​
为什么 Group 列表中多了一些 Group?​
通过消息队列 Kafka版控制台或 OpenAPI 查看指定实例的 Group 列表时,发现列表中的 Group 数量比手动创建的数量更多,即出现了一些非手动创建的 Group。该现象的主要原因如下:​
  • 开启了自动创建 Group 功能,消息队列 Kafka版自动创建了一些 Group。开启自动创建 Group 功能后,您可以直接在消费 SDK 中指定一个符合命名要求的 Group ID 进行消费,此 Group 会显示在实例的 Group 列表中。​
  • 创建并启动了 Connector 任务。 Connector 任务启动后,消息队列 Kafka版会自动为指定实例创建一个 Consumer Group,用于消费指定 Topic 中的数据。该 Group 名称以 connect-task 为前缀,并显示在该实例的 Group 列表中。​
  • 您之前如使用过 Assign 方式提交消费位点,那么也会在 Kafka 集群上创建对应的 Group。​
为什么 Group 会被自动删除?​
消息队列 Kafka版支持自动删除 Group(auto.delete.group) 功能,您可以设置后端服务是否自动删除 Empty 状态的消费组。开启后,如果消费者组中的所有消费者处于 Empty 状态,超出消费位点保留时长后会自动删除该消费者组;关闭后,消费进度的自动删除不影响消费组的状态,Empty 状态的 Group 也不会被系统自动删除。​
当 Group 被自动删除后,您可以查看实例的参数配置中,自动删除 Group 一项的设置是否开启。参数配置方式请参考修改参数配置。​
为什么无法删除 Group?​
消费组当前无消费者正在消费时,Group 的状态为 Empty。仅 Empty 状态的 Group 可以删除。删除 Group 前需要检查 Group 状态是否为 Empty。​
为什么看不到 Group 的消息堆积量,或堆积量为 0?​
查看 Group 的消费状态时,如果当前的消费位点与最大位点不一致,但页面未显示 Group 的堆积量数据,或堆积量显示为 0。该现象的主要原因如下:​
  • 客户端从未提交过消费位点,或者提交的消费位点已过期。​
  • 客户端提交过消费位点,且消费位点未过期,但由于部分消息数据被过期删除,导致消费位点小于或者等于最小位点。​
为什么 Group 的订阅关系显示为空?​
  • 问题现象:​
  • Consumer 某个 Group 已启动消费,但在消息队列控制台上查看不到此 Group 订阅的 Topic 信息,也没有对应的消费状态。主要表现为:​
  • 在指定 Group 详情页的概览统计区域,订阅Topic一栏中显示数量为 0。​
  • 在指定 Group 详情页的消费状态区域,Topic 一列中显示为空。​
  • 主要原因如下:​
  • 客户端配置错误。建议检查 Kafka 客户端的消息订阅相关配置。​
  • 客户端网络环境异常,无法成功连接 Kafka 实例。您可以通过 ping 或 telnet 命令测试 Kafka 实例的连通性,判断是否可成功连接 Kafka 实例。​
  • 客户端未提交消费位点。如果客户端采用 assign 方式手动指定 Consumer 订阅指定 Topic 分区的消息,但并未提交消费位点,也可能造成此问题。​
删除 Group 后,为什么还有此 Group 的监控数据?​
云监控以分钟为维度采集 Kakfa 实例的各项监控数据,并将原始监控数据根据各种聚合与计算规格进行整理,处理后的数据才会显示在监控图表中。监控数据从变化到体现在监控图表中,其中时间差大约在10分钟左右。删除 Group 等其他资源之后,建议在一段时间之后再查看对应监控数据的变化。​
​
​
最近更新时间:2026.06.23 17:18:32
这个页面对您有帮助吗?
有用
有用
无用
无用