问下Apache RocketMQ4.4版本 延时消息插入broker之后,由于msg的topic变成了SCHEDULE_TOPIC_XXXX,ScheduleMessageService到点后将消息put到真实的topic,但是没有纳入统计到BrokerStatsManager,所以延时消息这块通过BrokerStatsManager没法真实看到分钟/小时/天的统计,这块新版本有优化或者变化吗?
对于Apache RocketMQ 4.4版本,延时消息插入broker后被分配到SCHEDULE_TOPIC_Xxxxx这个topic,然后由ScheduleMessageService按照延时时间再次发送到真实的目的topic。但是由于这个过程涉及到不同的topic,所以在BrokerStatsManager统计延时消息的时候会有一定的限制。因此,如果想要准确地统计延时消息的情况,建议使用专门的监控工具对SCHEDULE_TOPIC_Xxxxx和对应的真实目的topic进行监控和统计。
在新版本的RocketMQ中,这种限制并没有被完全解决。但是可以通过启用trace log来获得更详细的延时消息日志信息,这些信息可以协助更好地统计和监控延时消息。同时,也可以参考RocketMQ社区开发的插件和工具来实现更高级别的监控和统计需求。
4.9的版本有延迟级别offset和最大延迟消息offset的统计, 在broker running status中 : https://github.com/apache/rocketmq/blob/7d9c79bbeee9d1d8a906e3f3ba6231551e8f993b/store/src/main/java/org/apache/rocketmq/store/schedule/ScheduleMessageService.java#L102C17-L113
5.x有任意延迟消息,metric: https://github.com/apache/rocketmq/blob/develop/store/src/main/java/org/apache/rocketmq/store/timer/TimerMetrics.java,此回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/