【Redis】阿里面试官让我用Zk(Zookeeper)实现分布式锁( 四 )
还有么?
使用Zookeeper也有可能带来并发问题 , 只是并不常见而已 。
由于网络抖动 , 客户端可ZK集群的session连接断了 , 那么zk以为客户端挂了 , 就会删除临时节点 , 这时候其他客户端就可以获取到分布式锁了 。
就可能产生并发问题了 , 这个问题不常见是因为zk有重试机制 , 一旦zk集群检测不到客户端的心跳 , 就会重试 , Curator客户端支持多种重试策略 。
多次重试之后还不行的话才会删除临时节点 。
Tip:所以 , 选择一个合适的重试策略也比较重要 , 要在锁的粒度和并发之间找一个平衡 。
有更好的实现么?
基于Redis的分布式锁
能跟我聊聊么?
我看看了手上的表 , 老公 , 今天天色不早了 , 你全问完了 , 我怎么多水几篇文章呢?
行确实很晚了 , 那你回家去把家务干了吧?
我????
本文插图
=
总结 zk通过临时节点 , 解决掉了死锁的问题 , 一旦客户端获取到锁之后突然挂掉(Session连接断开) , 那么这个临时节点就会自动删除掉 , 其他客户端自动获取锁 。
zk通过节点排队监听的机制 , 也实现了阻塞的原理 , 其实就是个递归在那无限等待最小节点释放的过程 。
我上面没实现锁的可重入 , 但是也很好实现 , 可以带上线程信息就可以了 , 或者机器信息这样的唯一标识 , 获取的时候判断一下 。
zk的集群也是高可用的 , 只要半数以上的或者 , 就可以对外提供服务了 。
这周会写完Redis和数据库的分布式锁的 , 老公们等好 。
我是敖丙 , 一个在互联网苟且偷生的工具人 。
最好的关系是互相成就 , 老公们的「三连」就是丙丙创作的最大动力 , 我们下期见!
注:如果本篇博客有任何错误和建议 , 欢迎老公们留言 , 老公你快说句话啊!
你知道的越多 , 你不知道的越多
推荐阅读
- 畜牧业@畜牧互联网再次引爆:阿里养猪,京东养鸡,快看大佬们都在干嘛
- 『腾讯科技』淘宝天猫蒋凡在阿里内网回应传闻:深表歉意,恳请公司展开调查
- #阿里巴巴#将饿了么卖给阿里,套现600亿的大学生,如今在干什么呢?
- 服务@云市场跨步式发展 打造ToB云市场阿里腾讯外“第三股势力”
- 『程序员』阿里程序员感慨:公司期权套牢了我,外面开五六万的薪资都不想接
- 「创作者来直播」阿里老师给检察官做直播,猜猜带的什么货?
- 『湘潭』华为、京东、阿里云……湘潭欲打造的这个“英雄联盟”很是“牛”
- #新开普#阿里系进驻后股价翻倍,这家豫股却遭大股东减持套现63次丨立方财报眼
- 【天猫】天猫“总裁夫人”手撕张大奕:如涵股价暴跌9% 阿里股价波动较小
- [马云]卸任后的马云只拥有7的股权,为何却仍可以控制阿里
