架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 75003|回复: 36

[控制台程序] .net/c# Zookeeper分布式锁的实现[源码]

[复制链接]
发表于 2018-4-4 17:10:42 | 显示全部楼层 |阅读模式
首先,关于.net/c# Zookeeper分布式锁参考了以下两篇文章:

https://www.cnblogs.com/Burt/p/6593868.html

http://www.cnblogs.com/chejiangyi/p/4938400.html

其实,上面两篇文章都是错误!完全误导编程开发者!


关于Zookeeper安装教程:

【实战】zookeeper在windows环境安装教程
http://www.itsvse.com/thread-4603-1-1.html
(出处: 架构师_程序员)

Zookeeper分布式锁的实现原理,这里通俗简单点讲解:

1:获取locker下面的所有子节点

2:所有子节点里面排序,这里分两种情况

如果自己节点是序号最小的,那么就认为该客户端获取到了锁。可以执行自己的操作!
如果自己节点是序号不是最小的,监听最小的节点,并不是监听比自己小的上一个节点!!!!这里要注意!
(因为,自己的上一个节点,有可能超时,会释放锁!)

3:等待Zookeeper通知,然后,重复2的操作,拉取所有节点,排序,判断自己是否是最小的节点............

我们知道,原理后,我们来看下文章最上面的两篇介绍为啥是错的?

QQ截图20180404170015.jpg

QQ截图20180404170240.jpg

大家看文章中订单的例子,感觉是正确的,并且运行后结果也是正确的!但是,你多测试几次,就知道文章的代码完全是错的!!!!!

所以,知道原理了,我们还是自己来写的吧!反正已经不是第一次被网上的代码坑了!

下面是正确的gif图:

zk.gif QQ截图20180404163616.jpg

调用代码:

QQ截图20180404170716.jpg

使用的ZooKeeperNet.dll版本为3.4.6.1

【实战】ASP.NET Core 基于 Redis 分布式锁秒杀
https://www.itsvse.com/thread-9397-1-1.html

最后,附上源代码:

游客,如果您要查看本帖隐藏内容请回复





上一篇:解决MySQL5.6出现"Using a password on the command line interface..."
下一篇:jquery 获取jquery对象的标签类型
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2019-5-6 18:15:55 | 显示全部楼层
LZ,我看了源码 没有处理zk超时的操作 比如 释放锁,是不是因为 ZK 临时节点的机制。如果断开 zk会自动删除节点。
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2019-7-3 11:16:25 | 显示全部楼层
运行报错:引发类型为“ZooKeeperNet.KeeperException+ConnectionLossException”的异常。
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2019-5-6 18:17:02 | 显示全部楼层
单台zk的情况下,可能没问题。如果zk做集群,3台zk数据同步更新 性能上面会不会有问题?
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2018-4-8 16:32:38 | 显示全部楼层
谢谢分享,来看看
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2018-6-1 12:01:39 | 显示全部楼层
谢谢分享
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2018-7-5 12:31:02 | 显示全部楼层
不错的帖子
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2018-7-10 12:11:14 | 显示全部楼层
mark
mark
mark
mark
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2018-7-11 15:47:20 | 显示全部楼层
不错,正在研究分布锁实现方案
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2018-8-1 12:52:23 | 显示全部楼层
看看再说
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2018-10-28 19:55:23 | 显示全部楼层
学习学习
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2018-10-31 16:52:15 | 显示全部楼层
正在研究,谢谢楼主
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2018-11-23 10:24:32 | 显示全部楼层
不错很好
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-19 03:00

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表