开发者社区 > 云原生 > 正文

当消费者进行平衡时,有关某个进程队列的问题被标记为已删除。

当消费者服务启动后,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

展开
收起
芬奇福贵 2023-05-26 15:59:20 109 0
1 条回答
写回答
取消 提交回答
  • processQueueTable,当前消息队列缓存表,如果缓存表中的 MessageQueue 不包含在 mqSet 中,说明经过本次负载后,该 mq 被分配给其他消费者,故需要暂停该消息队列消息的消费,方法 是将 ProccessQueue 的状态设置为 draped=true

    原回答者GitHub用户happyer

    2023-05-26 17:57:26
    赞同 展开评论 打赏
问答地址:

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
服务上云加速大家居产业C2M进程 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载

相关实验场景

更多