1、建数据库表(必须加唯一约束和失效时间,否则解锁失败会造成方法一直处于锁定状态):
问题:问题较多(操作失败,阻塞等问题)
解决办法:备库、while循环一直检查数据或者for update排他锁等
2、缓存分布式锁(redis、memcached等,但需要传入失效时间)
比较倾向于这种性能好,操作方便
3、zookeeper分布式锁
这种最可靠,但是性能对比缓存锁有所不足
数据存储方式:方法名_方法名拥有者;如:createUser_userId createUser_1
不管用那种,都无法十分完美,根据不同的应用场景选择最适合自己的才好