一、出现非幂等性情况

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中。如果存在,则跳过。如果不存在,则接受。

二、出现消息丢失情况

RabbitMQ(实践过程中的问题总结)

2.1、- 消息生产者没有成功发送到MQ Broker

2.2、- 消息发送给MQ Broker后,Broker宕机导致内存中的消息数据丢失

2.3、- 消费者消费到了消息,但是没有处理完毕就出现异常导致丢失

解决方案

RabbitMQ(实践过程中的问题总结)

  1. 消息发送者发送给MQ Broker后,MQ Broker给生产者确认收到
  2. MQ收到消息后进行消息持久化
  3. 消费者收到消息处理完毕后手动进行ack确认
  4. 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
相关资源
相似解决方案