Open
Description
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中消费状态相关的指标并没有使用到最后消费时间这个数据
但是对应的broker admin processor方法中会去读取消息的存储时间
这在可观测场景中是多余且增加稳定性风险的