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

rocketmq 超过3天的延迟消息,采用多次投递,比如9天,投递三次,这样有没有风险 ?

rocketmq 超过3天的延迟消息,采用多次投递,比如9天,投递三次,这样有没有风险 ?

展开
收起
你鞋带开了~ 2024-02-28 18:22:37 118 0
3 条回答
写回答
取消 提交回答
  • 使用RocketMQ进行超过3天的延迟消息投递,并且采用多次投递的策略,确实存在一定的风险。这些风险可能包括但不限于:

    1. 消息堆积:如果客户端的消费速度跟不上服务端的发送速度,未处理的消息会越来越多,可能导致消息堆积。
    2. 消费延迟:消息堆积可能会导致消息消费延迟,影响业务的正常运行。
    3. 资源规划:需要合理规划资源和配置,以避免因消息堆积和延迟影响业务运行。
    4. 系统能力不匹配:如果业务系统上下游处理能力不匹配,可能会造成持续的消息堆积,且无法自行恢复。
    5. 实时性要求:对于实时性要求较高的业务系统,即使是短暂的堆积造成的消息延迟也可能无法接受。

    综上所述,在实施多次投递策略时,建议充分评务需求和系统能力,确保消息队列的配置能够满足业务的实际需求,同时要考虑到可能的风险,并制定相应的应对措施。

    2024-02-29 22:41:04
    赞同 1 展开评论 打赏
  • 阿里云大降价~

    存在风险,RocketMQ对于超过3天的延迟消息采用多次投递策略需要谨慎处理。

    首先,延迟消息是指消息在到达消息队列服务端后不会立即投递,而是等到预设的时间点才投递给消费者。这种机制在需要定时执行任务的场景中非常有用,比如订单超时未支付自动取消、生日祝福等。

    其次,对于超过3天的延迟消息,如果采用多次投递的策略,比如9天投递三次,可能会有以下几点风险:

    • 资源占用:每次投递都会占用Broker的存储和计算资源,多次投递可能会增加系统的负担,尤其是在高并发的情况下。
    • 消息冗余:如果多次投递的消息内容相同,可能会导致消费者收到重复的消息,需要在消费者端进行去重处理。
    • 消费延迟:由于是延迟投递,消费者在处理消息时可能会遇到延迟,这可能会影响到业务流程的及时性。
    • 系统复杂度:实现多次投递的逻辑会增加系统的复杂度,需要考虑的因素更多,比如投递时间的设置、失败重试的策略等。

    最后,在实现多次投递的功能时,需要考虑上述风险,并根据实际情况制定相应的策略来降低风险,比如优化存储策略、增加错误处理机制、监控资源使用情况等。同时,也要考虑业务场景是否真的需要多次投递,是否有其他替代方案可以达到相同的业务效果。

    2024-02-29 17:52:44
    赞同 展开评论 打赏
  • 分几次投递,可能会造成一定消息的写放大。如果容量、保存时间足够的话是没有风险的。
    --此回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群”

    2024-02-28 19:16:28
    赞同 展开评论 打赏

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

相关产品

  • 云消息队列 MQ
  • 热门讨论

    热门文章

    相关电子书

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