摘要: 分布式锁一般来说有三种实现方式,分别基于:数据库、redis、zookeeper 数据库 可以利用关系数据库的唯一键实现,例如各个不同节点拿着相同的业务key插入键字段,插入成功则获得锁 利用数据库表乐观锁,常用方法就是增加一个版本标识 利用数据库表悲观锁(排它锁),如mysql中使用:select 阅读全文
posted @ 2019-03-12 22:51 惬意的小屋 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 悲观锁 总是假设最坏的情况,每次拿数据都认为别人会修改数据,所以要加锁,别人只能等待,直到我释放锁才能拿到锁;数据库的行锁、表锁、读锁、写锁都是这种方式,java中的synchronized和ReentrantLock也是悲观锁的思想。 乐观锁 总是假设最好的情况,每次拿数据都认为别人不会修改数据, 阅读全文
posted @ 2019-03-12 13:39 惬意的小屋 阅读(3180) 评论(0) 推荐(1) 编辑