• 分布式锁


    分布式锁的使用场景

    • 效率性:使用分布式锁可以避免不同节点重复相同的工作。

    • 正确性:分布式锁可以避免破坏正确性的发生,如果两个节点在同一条数据上面操作,比如多个节点机器对同一个订单操作不同的流程有可能会导致该笔订单最后状态出现错误,造成损失。

    分布式锁的几种特性

    • 互斥性:和我们本地锁一样互斥性是最基本,但是分布式锁需要保证在不同节点的不同线程的互斥。

    • 可重入性:同一个节点上的同一个线程如果获取了锁之后那么也可以再次获取这个锁。

    • 锁超时:和本地锁一样支持锁超时,防止死锁。

    • 高效,高可用:加锁和解锁需要高效,同时也需要保证高可用防止分布式锁失效,可以增加降级。
    • 支持阻塞和非阻塞:和ReentrantLock一样支持lock和trylock以及tryLock(long timeOut)。
    • 支持公平锁和非公平锁(可选):公平锁的意思是按照请求加锁的顺序获得锁,非公平锁就相反是无序的。

    分布式锁有以下几个方式:

    • MySql
    • Zk
    • Redis
    • 一些自研的分布式锁(Chubby)
  • 相关阅读:
    css 图片的无缝滚动
    有时间研究下这个
    js的类数组对象
    js的this什么时候会出现报错
    js前端分页
    js队列
    js前端处理url中的参数为对象
    随机看的一点代码
    js的callee和caller方法
    js的Object和Function
  • 原文地址:https://www.cnblogs.com/KL2016/p/15821445.html
Copyright © 2020-2023  润新知