[发明专利]一种分布式锁实现方法及系统在审
申请号: | 201911403931.5 | 申请日: | 2019-12-30 |
公开(公告)号: | CN111190913A | 公开(公告)日: | 2020-05-22 |
发明(设计)人: | 徐加明;赵树伟;王杰;杜勇 | 申请(专利权)人: | 联动优势(北京)数字科技有限公司 |
主分类号: | G06F16/23 | 分类号: | G06F16/23;G06F16/176;G06F9/52;G06Q40/04 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 杨明月 |
地址: | 100088 北京市西城*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 实现 方法 系统 | ||
本发明实施例提供一种分布式锁实现方法及系统,该方法包括:客户端向区块链网络中的任一分布式锁服务节点发送分布式锁交易信息;若接收分布式锁交易信息的分布式锁服务节点为正常节点,则区块链网络通过预设的共识算法对分布式锁交易信息进行共识后,利用预设的智能合约对分布式锁交易信息进行后根据客户端标识向客户端发送预设反馈信息。本发明实施例提供的分布式锁实现方法及系统,通过将分布式锁服务节点构成区块链网络,并通过共识对分布式锁交易信息进行处理,即使一定量的分布式锁服务节点被攻击,区块链系统依旧提供高可用的锁服务能力,并可防止单点故障导致分布式锁服务不可用,由此提高了分布式锁服务的抗攻击能力和可用性。
技术领域
本发明涉及区块链技术领域,具体涉及一种分布式锁实现方法及系统。
背景技术
分布式锁是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统中,常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式锁。
现在的分布式锁实现方式主要是基于Zookeeper、数据库等中心化方式,当这些中心化系统被恶意攻击时,提供的分布式锁服务失效,导致业务处理异常。比如,在基于Zookeeper实现分布式锁时,所采用的方案为:1)在Zookeeper指定节点(locks)下创建临时顺序节点;2)获取locks下所有子节点;3)对子节点按节点自增序号从小到大排序;4)判断本节点是不是第一个子节点,若是,则获取锁;若不是,则监听比该节点小的那个节点的删除事件;5)若监听事件生效,则回到第二步重新进行判断,直到获取到锁。Zookeeper使用基于raft的分布式一致性算法,当恶意的分布式zk节点攻击Zookeeper系统时,导致Zookeeper系统异常,分布式锁服务提供错误信息。
可见,现有技术的分布式锁的实现方法抗攻击能力差、可用性差。
发明内容
为解决现有技术中的问题,本发明实施例提供一种分布式锁实现方法及系统。
第一方面,本发明实施例提供一种分布式锁实现方法,包括:分布式部署的客户端向区块链网络中的任一分布式锁服务节点发送分布式锁交易信息,所述分布式锁交易信息包括客户端标识及锁标识;若接收所述分布式锁交易信息的所述分布式锁服务节点为正常节点,则所述区块链网络通过预设的共识算法对所述分布式锁交易信息进行共识后,利用预设的智能合约对所述分布式锁交易信息进行处理,处理完成后根据所述客户端标识向所述客户端发送预设反馈信息。
进一步地,所述方法还包括:若所述客户端在预设时间内未接收到所述区块链网络发送的与所述分布式锁交易信息对应的所述预设反馈信息,或所述客户端在预设时间内接收到所述预设反馈信息,但通过查询区块链网络发现当前相应的锁持有状态信息与所述预设反馈信息不一致,则向另一所述分布式锁服务节点再次发送所述分布式锁交易信息,重复上述过程,直至接收到所述预设反馈信息,且所述预设反馈信息与当前所述锁持有状态信息一致。
进一步地,所述分布式锁交易信息为获取锁交易信息;所述区块链网络利用预设的智能合约对所述分布式锁交易信息进行处理包括:所述区块链网络根据所述锁标识查看是否有客户端已经获取相应锁;若已经有客户端获取相应锁且正常使用,则向发送所述获取锁交易信息的所述客户端发送锁占用信息;若没有客户端获取相应锁,或有客户端获取相应锁但未正常使用,则变更锁持有者为发送所述分布式锁交易信息的所述客户端,并向所述客户端发送锁成功获取信息;其中,所述预设反馈信息包括所述锁占用信息或所述锁成功获取信息。
进一步地,所述分布式锁交易信息为释放锁交易信息;所述区块链网络利用预设的智能合约对所述分布式锁交易信息进行处理包括:所述区块链网络判断发送所述分布式锁交易信息的所述客户端是否是当前与所述锁标识对应的锁的持有者,若是,则释放所述锁,并向所述客户端发送锁成功释放信息;若否,则向所述客户端发送错误信息;其中,所述预设反馈信息包括所述锁成功释放信息或所述错误信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于联动优势(北京)数字科技有限公司,未经联动优势(北京)数字科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911403931.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:基于全局阈值与模板匹配的焊缝特征点滤波方法
- 下一篇:一种拼接式计算机机箱