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

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

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

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

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

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

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

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

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

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

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

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

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

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

多个子产品线联合打造金融级高可用消息服务以及对物联网的原生支持,覆盖多行业。

相关产品

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

    热门文章

    相关电子书

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