五、 用幂等性解决消息重复问题

如何解决消息重复问题?

可以通过让消费消息的操作具备幂等性来解决。幂等指的是多次执行与一次执行产生的影响相同。
具体方案:

  1. 利用数据库的唯一约束实现幂等。因为唯一约束可以保证不重复插入数据,或者通过 Redis 的 setnx 命令来实现数据库的唯一约束,因为 setnx 指的是 insert if not exist,也能防止插入重复数据。
  2. 为更新的数据设置前置条件。给数据变更设置一个前置条件,如果满足条件则更新数据,同时变更前置条件,比如“将账户余额增加100元”这个操作不幂等,如果改为“当账户余额为500元时,将余额增加100元”,这个操作就具备幂等性了。
发布了307 篇原创文章 · 获赞 11 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/dl674756321/article/details/105317833