zoukankan      html  css  js  c++  java
  • RocketMQ消费者实践

      最近工作中用到了RocketMQ,现记录下,如何正确实现消费~

    • 消费者需要注意的问题
    1. 防止重复消费
    2. 如何快速消费
    3. 消费失败如何处理
    • Consumer具体实现
    • 防止重复消费

        重复消费会造成数据不一致等问题。所以,消费者要做到消费幂等

        1)每次消费,记录messageId;如果再次消费该message,查询messageId是否已存在,已存在,就跳过消费;

        2)使用具体业务状态来防止重复消费,例如如果状态已经被变更,说明已有消息被消费;

    • 如何快速消费

        消费过程缓慢,势必会造成消息积压,如何提高消费速度势必比较重要:

        每次接收到消息后,不做处理(具体不一定,最好是简单),直接将消息保存到本地数据库,然后后台异步处理消息,这么做的好处:

        1) 快速消费,如果消费过程比较耗时(大量更新,RPC调用等),可以将消息插入本地,然后后台异步消费,消费完成,更新本地消息状态

                   2)失败可控,如果某条消息消费失败,不依赖于mq的重试机制,可以定时重跑消费失败的消息,或者人工触发重试消费。

    • 消费失败如何处理

       消费过程不能保证不出异常,虽然mq消费失败有重试机制,但我们并没有这么做,而是:

        跟上面提到的一样,由于已经把消息存到了本地,消费失败,也不用担心,后台重跑即可~~~~

      如果大家觉得上面说的哪方面有问题,或者有更好的实践,欢迎留言~~~~

  • 相关阅读:
    ffmpeg-3.2.4-static-win32-for-XP-bin.tar.xz
    FFmpeg Scaler Options
    MinGW GCC 6.3.0 2017年3月份出炉啦
    ffmpeg-201701[10,16,21,23,25]-bin.7z
    ffmpeg-201612[01,08,10,17,21,27,30]-bin.7z
    Firefox Portable Developer 52.0.0.6176-6178
    DIR 按文件名中数字大小进行排序
    ffmpeg-20161104[07,10,16,21,22,27,30]-bin.7z
    gnuWin32-mini-2016.10.30
    gnu coreutils-8.25 for win32 static
  • 原文地址:https://www.cnblogs.com/yangweiqiang/p/7218750.html
Copyright © 2011-2022 走看看