rabbitmq如何避免消息重复投递(rabbitmq如何避免重复发送和投递)

今天给各位分享rabbitmq如何避免消息重复投递的知识,其中也会对rabbitmq如何避免重复发送和投递进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

面试官:如何保证RocketMQ/RabbitMQ消息数据100%不丢失

1、下面从多个方面确保消息不丢:RabbitMQ 的消息默认存放在内存上面,如果不特别声明,消息不会持久化保存到硬盘上面,如果节点重启或者意外crash掉,消息就会丢失。

2、设置持久化有两个步骤:①创建queue的时候将其设置为持久化的,这样就可以保证rabbitmq持久化queue的元数据,但是不会持久化queue里面的数据。②发送消息的时候讲消息的deliveryMode设置为2,这样消息就会被设为持久化方式,此时rabbitmq就会将消息持久化到磁盘上。 必须要同时开启这两个才可以。

3、定时重试发送消息表中还没有处理的消息,下游的服务需要做幂等,可能会收到多次重复的消息,如果一个回复消息生产方中的某个回执信息丢失了,后面持续收到生产方的 mq 消息,然后再次回复消息的生产方回执信息,这样总能保证发送者能成功收到回执,消息的生产方在接收回执消息的时候也要做到幂等性。

4、消息丢失 一般来讲消息丢失的途径有三个: 生产者弄丢数据、消息队列弄丢数据、消费者弄丢数据 。 生产者弄丢数据 a、丢失的原因:因为网络传输的不稳定性,当生产者在向MQ发送消息的过程中,MQ没有成功接收到消息,但是生产者却以为MQ成功接收到了消息,不会再次重复发送该消息,从而导致消息的丢失。

关于rabbitmq如何避免消息重复投递和rabbitmq如何避免重复发送和投递的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

本站内容来自用户投稿,如果侵犯了您的权利,请与我们联系删除。联系邮箱:835971066@qq.com

本文链接:http://www.jijigongmeng.com/post/4518.html

发表评论

评论列表

还没有评论,快来说点什么吧~