zoukankan      html  css  js  c++  java
  • 分布式协调与同步之分布式锁

    分布式锁的实现方式

    数据库

        实现方式: 创建一张锁表对临界资源做唯一约束,锁住资源时增加一条记录,释放时删除该记录

        优点:容易理解

        缺点:容易出现单点故障,死锁等问题,实现复杂,性能低可靠性低

        应用场景:并发量低,性能要求低的场景

    redis缓存

        实现方式:setnx,或者采用官方推荐的方式https://redis.io/topics/distlock

        优点:性能高,无单点故障问题,易于实现

        缺点:锁失效时间的控制不稳定,可靠性不如zookeeper

        应用场景:并发量要求高,性能要求高的场景

    zookeeper

        实现方式:为每个进程创建一个临时顺序节点,编号最小的获得锁

        优点:无单点故障,不可重入,死锁等问题,可靠性高,易于实现

        缺点:性能不如缓存分布式锁好

        应用场景:适用于大部分场景,不适用于性能要求极高的场景

  • 相关阅读:
    [HNOI2004]L语言
    快速沃尔什变换FWT
    [BZOJ1486][HNOI2009]最小圈
    [BZOJ4819][SDOI2017]新生舞会
    [POJ2976]Dropping tests
    CTSC2018&APIO2018游记
    [Luogu3769][CH弱省胡策R2]TATT
    [BZOJ3489]A simple rmq problem
    [BZOJ4066]简单题
    [BZOJ2648]SJY摆棋子
  • 原文地址:https://www.cnblogs.com/battlescars/p/distributed_lock.html
Copyright © 2011-2022 走看看