mongo分布式锁Java实现方法(推荐)
代码部署在多台服务器上,即分布式部署。多个进程同步访问一个共享资源。当B请求到资源是调用mongo自增 +1,并将结果返回给A,即2。此时结果大于1则表明,B请求过程中有其他请求请求到资源,锁资源不能分配给B。这样就是实现了多个请求请求同一个锁并且排队。关于锁过期时间 :如果图中代码1releaseLockExpire修改为releaseLockExpire,即在释放锁的时候没有传入过期时间,会产生如下情况:A、B两个请求同时通过条件,进入到代码 1B执行完删除操作,进入代码2,并且刚刚获得到锁资源,而此时A及有可能刚开始执行释放锁的操作。此时就会发生,A释放了B刚刚获得的锁,这样B就会失去刚刚获得的锁,而B确没有感知,从而造成逻辑错误。
下载地址
用户评论