分布式核心技术-关于高并发下分布式锁你知道多少?

DBC 1.6K 0

简介:分布式锁核心知识介绍和注意事项

  • 避免单人超领劵
    • 加锁
      • 本地锁:synchronize、lock等,锁在当前进程内,集群部署下依旧存在问题
      • 分布式锁:redis、zookeeper等实现,虽然还是锁,但是多个进程共用的锁标记,可以用Redis、Zookeeper、Mysql等都可以

设计分布式锁应该考虑的东西

  • 排他性
    • 在分布式应用集群中,同一个方法在同一时间只能被一台机器上的一个线程执行
  • 容错性
    • 分布式锁一定能得到释放,比如客户端奔溃或者网络中断
  • 满足可重入、高性能、高可用
  • 注意分布式锁的开销、锁粒度
温馨提示

一般来说,我们能不加入锁就不要加入锁,因为锁的出现可能会出现很多不必要的问题,最简单的就是出现了性能的消耗,因为就算你是内网之间的通讯也不可能会比得上内存之间的通信要快。
加入了分布式锁,咱们最好是每一个优惠券加一个锁,而不是整个优惠卷同用一个锁,这样会导致性能问题,每一个优惠券使用不同的锁比较优雅!

  • 设计分布式锁应该考虑的东西
    • 排他性
      • 在分布式应用集群中,同一个方法在同一时间只能被一台机器上的一个线程执行
    • 容错性
      • 分布式锁一定能得到释放,比如客户端奔溃或者网络中断
    • 满足可重入、高性能、高可用
    • 注意分布式锁的开销、锁粒度

 

发表评论 取消回复
表情 图片 链接 代码

分享