各位大佬 Apache RocketMQ4.9.4 设置了获取的消息还是一条?都消费了 但是每次都是

各位大佬 Apache RocketMQ4.9.4 设置了consumeMessageBatchMaxSize=32为什么每次MessageListenerConcurrently获取的消息还是一条?都消费了 但是每次都是一条一条的消费,因为我在消费端有入库操作 这样的话每次只能插入一条 不是性能很低

展开
收起
真的很搞笑 2023-05-30 13:56:19 245 发布于黑龙江 分享
分享
版权
举报
3 条回答
写回答
取消 提交回答
  • 你看看你你数据没有消费的是多少, 最大消费不是每次都这样,你数据没有积压,他都是来一条消费一条 这么达到32,此回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群”

    2023-05-30 14:22:15 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。
    1. 设置consumeMessageBatchMaxSize参数,指定一次能拉取的最大消息数,例如你设置为32。
    2. 消费端实现MessageListenerOrderly接口,而不是MessageListenerConcurrently接口。Orderly表示有序消费,会批量消费消息。
    3. 在MessageListenerOrderly#consumeMessage接口实现中,可以获取到消息列表List,而不是单条消息。
    4. 消费实现中,可以循环该列表,批量处理多条消息。
    5. 消息处理完后,需要调用consumeOrderly(); 表示批量消费完,可以拉取下一批消息。
    2023-05-30 14:12:24 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
  • 可以看下消息是不是以批量的方式发送到 RocketMQ Broker。如果消息发送端是逐条发送消息,即使在消费端设置了批量消费的参数,也无法批量获取到消息。

    还有就是确认配置生效,可以打印日志看下是否是配置的却是consumeMessageBatchMaxSize=32

    2023-05-30 14:01:19 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论

涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/

收录在圈子:
+ 订阅
阿里云 云原生应用平台 肩负阿里巴巴集团基础设施云化以及核心技术互联网化的重要职责,致力于打造稳定、标准、先进的云原生产品,成为云原生时代的引领者,推动行业全面想云原生的技术升级,成为阿里云新增长引擎。商业化产品包括容器、云原生中间件、函数计算等。

热门讨论

热门文章

还有其他疑问?
咨询AI助理