一、出现非幂等性情况
1.1、幂等性的概念就是消息重复发送,结果只收到一条消息。
1.2、出现非幂等性的情况分为以下三种
1.2.1、在confirm确认消息时,网络中断,导致消息重新发送
1.2.2、消息在经过rabbitmq中,rabbitmq自身出现错误,导致消息在rabbitmq中重复出现。
1.2.3、消费者默认是自动监听消息队列,由于消费者这边代码出现错误。
1.3、解决方案是:
1.3.1、在发送消息的消息体里,加入一个唯一ID。在消费方去判定这个ID,是否存在Redis/db中。如果存在,则跳过。如果不存在,则接受。
二、出现消息丢失情况

2.1、- 消息生产者没有成功发送到MQ Broker
2.2、- 消息发送给MQ Broker后,Broker宕机导致内存中的消息数据丢失
2.3、- 消费者消费到了消息,但是没有处理完毕就出现异常导致丢失
解决方案

- 消息发送者发送给MQ Broker后,MQ Broker给生产者确认收到
- MQ收到消息后进行消息持久化
- 消费者收到消息处理完毕后手动进行ack确认
- MQ收到消费者ack确认后删除持久化的消息
相关文章:
-
2022-01-16
-
2021-07-11
-
2021-07-10
-
2021-06-09
-
2022-01-01
-
2021-12-02
-
2021-10-21
-
2022-12-23
猜你喜欢
-
2021-08-19
-
2022-01-19
-
2021-06-09
-
2022-12-23
-
2022-12-23
-
2021-11-03
相关资源
-
下载
2021-06-06
-
下载
2021-06-06
-
下载
2022-12-02