标签:方式 遇到 队列 成功 RabbitMQ 消息 提交 中常
如何保证消息不丢失
首先使用的场景与下图相符
- 生产者将消费放入到消息队列中
- 分布式消息队列服务同步消息以及元数据
- 操作系统将消息持久化到内存中
- 消费者从消息队列拉取消息进行消费
首先是1 可以采用消费者确认的方式进行提交,当消息发送到消息队列中时,如果RabbitMQ接收成功了,可以将接收成功的信息返回给客户端,还有一种方式是以事务提交的方式来提交消息,如果消息保存成功则提交事务,否则回滚,但是这种方式有个阻塞的弊端,会使吞吐量下降。
其次是2 可以采用镜像集群的方式进行部署,如果使用普通集群的方式进行部署的话只会同步元数据,而镜像集群部署则会同步消息。
再然后是3,可以使用懒队列,优先将消息持久化到硬盘中以此来避免消息丢失。
最后是4,可以使用手动提交或自动提交的方式来告诉RabbitMQ自己消费成功了,如果抛出异常的话,则不会响应给服务端消费成功的消息,那么这个消息就是消费失败的消息。
标签:方式,遇到,队列,成功,RabbitMQ,消息,提交,中常 来源: https://www.cnblogs.com/lyraHeartstrings/p/16403715.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。