Skip to content

消费状态和topic状态信息的broker admin处理器添加参数判断是否获取相关位点消息的时间 #9407

Open
@saleson

Description

@saleson

Before Creating the Enhancement Request

  • I have confirmed that this should be classified as an enhancement rather than a bug/feature.

Summary

消费状态和topic状态信息这两个admin 方法会被用于可观测的指标采集, 其中有段逻辑会获取相关位点消息的时间(最后存储时间),这些都需要从commit log中读取。如果某些消费组或者topic很长时间没有使用了,这就会出现broker读内存映射范围之外的消息,导致master broker iowait升级。并且可观测采集指标对于消消息的时间数据并不必要的,所以希望broker admin处理器添加参数判断是否获取相关位点消息的时间,规避MQ可观测影响MQ broker稳定性的风险。

Motivation

可观测的目的是提升MQ的稳定性,而不应该出现可观测会导致MQ broker稳定性风险加大的可能。
当存在一段时间没有使用的topic和consumer group时,如果是查看、运维场景仍可以返回时间数据,并且这种场景通常请求量或者并发都不大,对MQ Broker影响不大;如果是可观测场景,则指定参数不获取时间数据,因为这种场景请求量和读取磁盘的处理次数会比较大,例如消费状态是topic数量队列数量和topic数量队列数量*消费组数量。

Describe the Solution You'd Like

建议:消费状态和topic状态信息这两个broker admin处理器添加参数判断是否获取相关位点消息的时间,这样即使存在大量已经出现不使用的topic和consumer group也不会影响MQ的稳定性,且更利于MQ的运维和治理。

Describe Alternatives You've Considered

新增两个两个broker admin处理器: 消费状态(不返回最后消费时间)和topic状态信息(不返回最后存储时间)

Additional Context

rocketmq-exporter中消费状态相关的指标并没有使用到最后消费时间这个数据

Image
但是对应的broker admin processor方法中会去读取消息的存储时间

Image

这在可观测场景中是多余且增加稳定性风险的

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions