其他分享
首页 > 其他分享> > RabbitMQ使用中常遇到的问题

RabbitMQ使用中常遇到的问题

作者:互联网

如何保证消息不丢失

首先使用的场景与下图相符
image

  1. 生产者将消费放入到消息队列中
  2. 分布式消息队列服务同步消息以及元数据
  3. 操作系统将消息持久化到内存中
  4. 消费者从消息队列拉取消息进行消费
    首先是1 可以采用消费者确认的方式进行提交,当消息发送到消息队列中时,如果RabbitMQ接收成功了,可以将接收成功的信息返回给客户端,还有一种方式是以事务提交的方式来提交消息,如果消息保存成功则提交事务,否则回滚,但是这种方式有个阻塞的弊端,会使吞吐量下降。
    其次是2 可以采用镜像集群的方式进行部署,如果使用普通集群的方式进行部署的话只会同步元数据,而镜像集群部署则会同步消息。
    再然后是3,可以使用懒队列,优先将消息持久化到硬盘中以此来避免消息丢失。
    最后是4,可以使用手动提交或自动提交的方式来告诉RabbitMQ自己消费成功了,如果抛出异常的话,则不会响应给服务端消费成功的消息,那么这个消息就是消费失败的消息。

标签:方式,遇到,队列,成功,RabbitMQ,消息,提交,中常
来源: https://www.cnblogs.com/lyraHeartstrings/p/16403715.html