• 如何防止队列重复消费?


      在网络延迟等不可控的因素下,消息被重复发送的问题不可避免,但是我们应该保证我们的消息不被重复消费。

    如何解决

      在消费的业务逻辑里加入保证MQ重复消费的幂等性的操作。

    什么是幂等性

      其任意多次执行多产生的影响均与一次执行的影响相同。  

    如何保证幂等性

      从业务的实际操作划分解决方案

    1. 仅使用消息进行数据库插入操作:给消息加一个唯一主键,重复消费时会主键冲突。
    2. 仅使用消息做redis的set操作:无需处理,set本身幂等。
    3. 其他情况:利用第三方介质记录消费日志,给消息分配一个全局id,只要消费过该消息,则将k-v写入介质中,消费前先检查,如果已经消费过则不再消费。

    以上总结参考:https://mp.weixin.qq.com/s/sUQmVDw-XDxrFYpIyWbYGw、https://mp.weixin.qq.com/s/RW8dwgCODAqrjdFElMo45w、https://mp.weixin.qq.com/s/Ur9173kJ6DbrsD8DRwJE4w、https://mp.weixin.qq.com/s/sB5HjHr0neS07zvkz3OSjg

  • 相关阅读:
    内置方法(item系列、__str__方法、__del__方法)
    POJ3436
    CF551B
    HDU1588
    HDU3117
    CF834D
    CF832D
    CF832C
    POJ1930
    POJ3666
  • 原文地址:https://www.cnblogs.com/smallzhen/p/14679098.html
Copyright © 2020-2023  润新知