分布式锁的实现方式汇总

作者: 迦叶_金色的人生_荣耀而又辉煌 | 来源:发表于2021-10-08 07:15 被阅读0次

    上一篇 <<<Seata与Lcn的区别
    下一篇 >>>基于数据库实现分布式锁


    实现思路 优点 缺点
    利用mysql实现方案 利用数据库自身提供的锁机制,要求数据库支持行级锁 实现简单,稳定可靠 性能差,无法适应高并发场景;容易出现死锁的情况;无法优雅的实现阻塞式锁
    利用redis的实现方案 使用setnx和lua脚本机制实现,保证对缓存操作序列的原子性 性能好 实现相对较复杂,有出现死锁的可能性,无法优雅的实现阻塞式锁
    利用zookeeper的实现方案 基于zk的节点特性以及watch机制实现 性能好,稳定可靠性高,能较好的实现阻塞式锁 实现相对复杂

    从理解的难易程度角度(从低到高)
    数据库 > 缓存 > Zookeeper

    从实现的复杂性角度(从低到高)
    Zookeeper >= 缓存 > 数据库

    从性能角度(从高到低)
    缓存 > Zookeeper >= 数据库

    从可靠性角度(从高到低)
    Zookeeper > 缓存 > 数据库


    推荐阅读:
    <<<Redis实现分布式锁的原理分析
    <<<Redis分布式锁的实现代码示例
    <<<使用Redisson工具实现分布式锁
    <<<Redis官方提出的redlock分布式锁
    <<<Zookeeper示例之分布式锁
    <<<基于数据库实现分布式锁
    <<<基于数据库排他锁实现分布式锁
    <<<基于数据库或排他锁实现分布式锁总结

    相关文章

      网友评论

        本文标题:分布式锁的实现方式汇总

        本文链接:https://www.haomeiwen.com/subject/mjzmnltx.html