美文网首页
rabbitMQ消息丢失

rabbitMQ消息丢失

作者: 垂直居中的句号 | 来源:发表于2023-08-28 23:52 被阅读0次

    丢失的3种情况:

    1.生产者在发送给MQ时因网络问题或其他问题丢失。

    2.MQ暂存,后还没消费,就挂掉,导致丢失。

    3.消费者没来得及处理,就挂了,MQ还以为已经消费了。

    解决方法:

    1.生产者:a. 开启rabbitMQ事务同步,造成阻塞,耗性能,不推荐。

    b.开启confirm机制,异步,生成消息时会生成一个唯一的ID,mq收到消息后回传一个ack ,告诉生产者消息处理成功。如果失败,回调nack接口。超时,生产者重发。

    2.rabbitMQ: 开启消息持久化。

    消息补偿机制:生产端首先将业务数据以及消息数据入库,需要在同一个事务中,消息数据入库失败,则整体回滚。

    根据消息表中消息状态,失败则进行消息补偿措施,重新发送消息处理

    3.消费者关闭自动ACK确认机制

    使用rabbitmq提供的ack机制,服务端首先关闭rabbitmq的自动ack,然后每次在确保处理完这个消息之后,在代码里手动调用ack。这样就可以避免消息还没有处理完就ack。

    这样就解决了,即使一个消费者出了问题,但不会同步消息给服务端,会有其他的消费端去消费,保证了消息不丢的case。

    http://t.csdn.cn/Xj8BM

    相关文章

      网友评论

          本文标题:rabbitMQ消息丢失

          本文链接:https://www.haomeiwen.com/subject/hydnmdtx.html