防止mq重复消费
2020-10-26 本文已影响0人
__简单点__
1. 利用全局唯一id
消息里放入全局唯一id,做完业务后查询id是否存在表里,不存在则将唯一id插入数据库单独表里, 第二次消费时查询id是否在表里,存在则抛异常,利用事务回滚业务。
2. 利用乐观锁
发消息时带上业务的版本号,接收消息然后更新业务时去利用乐观锁的版本号更新业务完成版本号+1, 重复消费时则会找不到数据,更新不会成功。
1. 利用全局唯一id
消息里放入全局唯一id,做完业务后查询id是否存在表里,不存在则将唯一id插入数据库单独表里, 第二次消费时查询id是否在表里,存在则抛异常,利用事务回滚业务。
2. 利用乐观锁
发消息时带上业务的版本号,接收消息然后更新业务时去利用乐观锁的版本号更新业务完成版本号+1, 重复消费时则会找不到数据,更新不会成功。