V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Banxiaozhuan
V2EX  ›  职场话题

异步消息队列,遇到消费者重启的情况,有短暂时间没有消费信息如何处理。

  •  
  •   Banxiaozhuan · 2018-12-19 14:23:22 +08:00 · 2149 次点击
    这是一个创建于 2166 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在作项目用异步消息队列的时候遇到了两个问题: 第一个:生产上遇到需要修改集群缓存的时候,如何避免错误消费或者消息丢失。 第二个:如果消费者版本更新,在发布的时候队列在这期间容量会增大很多,很容易出事情。

    针对以上两种情况,有没有大神可以指点一下。

    5 条回复    2018-12-19 16:02:56 +08:00
    jedrek
        1
    jedrek  
       2018-12-19 14:35:34 +08:00
    可以考虑 Amazon SQS
    UIXX
        2
    UIXX  
       2018-12-19 15:05:24 +08:00   ❤️ 2
    问题不够具体。很难准确地回答。

    至少要知道业务类型、消息模型跟消息队列中的消息类型。

    针对第一个问题,如果你的业务是 B2C,消息是订单,那你所说的修改集群缓存引起错误就类似于销库存引发的异步问题。那解决方案就可以做得像秒杀系统那样表层响应+批处理+慢反馈。

    针对第二个问题,也就是我们所谓的消息积压,更多的是取决于消息的类型(订单之于 B2C 跟状态之于智能硬件,完全是不同的处理方案)。暂时性的资源扩容是必要的,消息超时机制也是必要的,一般都是避开高峰期批处理。不重要的消息甚至可以直接丢弃...
    petelin
        3
    petelin  
       2018-12-19 15:44:16 +08:00
    问题问的, 修改集群缓存, 所以消费者不能看到配置更改导致消费错误或者丢失??? 容易出问题, 出什么问题?

    还有异步消息队列用的那个产品也不说一下. 让别人盲菜吗?
    limbo0
        4
    limbo0  
       2018-12-19 15:54:53 +08:00 via Android
    一般用 kafka 或者 mq 可以解决
    sudoz
        5
    sudoz  
       2018-12-19 16:02:56 +08:00
    消费者增加 ACK
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2813 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 07:27 · PVG 15:27 · LAX 23:27 · JFK 02:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.