防止接口重复调用方法
防止重复调用的原理如下:
1. Redis锁。利用Redis的SETNX命令可以实现原子锁,保证同一时刻只有一个客户端能获取锁,其他客户端获取锁失败。通过设置过期时间实现锁的自动释放。
2. ThreadLocal。ThreadLocal利用线程局部变量存储是否调用过的标记。由于每个线程都有自己的副本,可以保证同一线程内不重复调用。
3. 同步锁。synchronized通过监视器对象(锁)实现同步,保证同一时刻只有一个线程持有锁执行同步代码块。其他线程获取锁失败被阻塞。