消息的重复消费问题解决:适用于任何MQ(RabbitMQ Kafka RocketMQ)
消费者在向队列发送确认的时候挂了,或者发生网络抖动。MQ会重新给消费者发送消息,这不重发消费了吗
解决方案:每条消息设置一个唯一的标识ID(业务唯一标识,比如支付ID)
消费者接收到消息的时候校验这个业务ID是否存在。
幂等方案:分布式锁,数据库锁(悲观锁,乐观锁)。性能低,不推荐。
消息的重复消费问题解决:适用于任何MQ(RabbitMQ Kafka RocketMQ)
消费者在向队列发送确认的时候挂了,或者发生网络抖动。MQ会重新给消费者发送消息,这不重发消费了吗
解决方案:每条消息设置一个唯一的标识ID(业务唯一标识,比如支付ID)
消费者接收到消息的时候校验这个业务ID是否存在。
幂等方案:分布式锁,数据库锁(悲观锁,乐观锁)。性能低,不推荐。