当消费者服务启动后,rmq日志会打印warn日志提示快照队列已经被删除,: org.apache.rocketmq.client.impl.consumer.ConsumeMessageConcurrentlyService$ConsumeRequest#run方法里: log.warn("processQueue is dropped without process consume result. messageQueue={}, msgs={}", messageQueue, msgs);
排查原因可能是由于: org.apache.rocketmq.client.impl.consumer.RebalanceImpl#updateProcessQueueTableInRebalance方法中ProcessQueue被设置为setDropped(true),请问下什么情况下会出现启动的时候会设置为setDropped(true)导致内存的快照ProcessQueue 和 实际的 MessageQueue 不一致,?
原提问者GitHub用户baihezhuo
processQueueTable,当前消息队列缓存表,如果缓存表中的 MessageQueue 不包含在 mqSet 中,说明经过本次负载后,该 mq 被分配给其他消费者,故需要暂停该消息队列消息的消费,方法 是将 ProccessQueue 的状态设置为 draped=true
原回答者GitHub用户happyer
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。