孤尽训练营打卡日记day27--分布式锁

前言

         随着公司业务的扩展,单实例逐渐都演变成的多实例,在多实例的情况下,怎么处理并发呢?

         单实例加锁:synchronized关键字、Semaphore、ReentrantLock,或者我们也可以基于AQS定制化锁

         多实例加锁:?

什么是分布式锁

         单机部署的情况下,锁是在多线程之间共享的,但是分布式部署的情况下,是多台机器,应用级锁。也就是说锁是多进程之间共享的。那么分布式锁要保证锁资源的唯一性,可以在多进程之间共享。

分布式锁特性(互斥、可重入)

  • 保证同一方法在某一时刻只能在一台机器里的一个进程中一个线程执行
  • 保证锁可重入(避免死锁)
  • 保证获取锁和释放锁的高可用

实现分布式锁的三种方式

数据库

         乐观锁:在表结构中,设置一列版本号,每次更新数据,都会校验版本号,不一致则更新失败

         场景:写比较少的场景,多读         

         悲观锁 :select ....... for update ,  每次拿数据的时候都会加锁,其他人只能读,不能写   

         场景:多写场景   

zookeeper

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值