1. 分布式锁:考虑利用redis的原子性特性,先确定redis中是否已处理过某个请求。如果没有,就创建,然后执行。执行完,清除redis里面的标记。因为redis是共享的,所以这种方式可以过滤掉重复请求引起的问题。
2. 分布式事务(最终一致性): 一个容器中执行完毕后,去调用另外一个容器中的方法。为保证两个方法同时成功,一般可以在数据库插入一条记录,往MQ中发一条消息。第二个容器监听MQ中的消息,
接收到消息后开始执行。执行完毕后,更新数据库中记录状态。有一个定时任务,定时扫描数据库,取出未处理的消息,放到消息队列中。
3. 幂等性分布式锁: 同一个方法,执行很多次以后,结果仍然一样。