一、MQ中出现幂等性问题的主要原因 (1)生产者重复生产 当网络发生故障时,生产者可能会多次发出相同的信号 (2)MQ重复发送消息给消费者 当消费者拉去信息后,由于网络或者服务器宕机的原因,MQ没有及时响应导致超时,MQ会认为第一次消费失败再去发送一次消息,导致发送消息重复 二、解决幂等性问题的办法 状态检查: 在消息发送出去之前,检查数据库中的消息状态是非被处理,已被处理就忽略,没有被处理则发送并标记为已处理唯一标识 给消息加上一个唯一标识符,可以根据这个标识来判断两次消息是否是同一条。