在RabbitMQ中,消息的幂等性保障为:消费多条相同的消息,得到于消费该消息一次相同的结果。
可以通过使用数据库的乐观锁来保证消息的幂等性:
首先,在消息的字段中加入一个新的字段version。
其次,每次在消费queue中的消息,触发update操作的时候,令version = version+1
当接受到这样的一条消息的时候,第一次SQL语句会执行成功,而第二次SQL语句不会执行成功。具体原理见下图中的SQL语句。
在RabbitMQ中,消息的幂等性保障为:消费多条相同的消息,得到于消费该消息一次相同的结果。
可以通过使用数据库的乐观锁来保证消息的幂等性:
首先,在消息的字段中加入一个新的字段version。
其次,每次在消费queue中的消息,触发update操作的时候,令version = version+1
当接受到这样的一条消息的时候,第一次SQL语句会执行成功,而第二次SQL语句不会执行成功。具体原理见下图中的SQL语句。