开发者社区 > 云原生 > 云消息队列 > 正文

消息队列RocketMQ版如果消息业务消费时间太久,那过多久会重新投递该消息?

消息队列RocketMQ版如果消息业务消费时间太久,那过多久会重新投递该消息?

展开
收起
Lee_tianbai 2021-01-01 16:25:08 2598 0
1 条回答
写回答
取消 提交回答
  • 消费端到 mq 当中拉到消息进行消费之后,会反馈给 mq 已经成功拿到消息并 且消费。如果 mq 没有接收到消费端的反馈,那么 mq 就会认为这个消息没有消费成 功,那么这个消息在 topic 当中就会再次可见,那么消费者就可以再次来拉取这个消 息(重试)。 第一次发消息算是第 0 次,如果在 10 秒内没有给 mq 反馈,那么这个消息就会 再次可见,消费端就会再去拉取这个消息,就是第一次重试了,如果在 10 秒之后, 消费者给了第一次发消息(第 0 次)的响应,那么这个消费也是失败的。比如消费者 现在拉取到的是 10s 之后第一次重试的,那么在之后的 30 秒之内,如果消费者给了 mq 第一次重试拉到的消息的响应,这个才算是消费成功的。 所以建议不要把业务逻辑放在返回给 mq 消息的代码之前,最好是保证 10 秒之 内要给到 mq 响应。可以将业务逻辑放在其他地方做并发处理。 image.png

    2021-01-01 16:25:34
    赞同 1 展开评论 打赏

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

相关产品

  • 云消息队列 MQ
  • 相关电子书

    更多
    RocketMQ Client-GO 介绍 立即下载
    RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载
    基于 RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载