CN112463757A - 一种分布式系统的资源访问方法及相关装置 - Google Patents
一种分布式系统的资源访问方法及相关装置 Download PDFInfo
- Publication number
- CN112463757A CN112463757A CN202011495952.7A CN202011495952A CN112463757A CN 112463757 A CN112463757 A CN 112463757A CN 202011495952 A CN202011495952 A CN 202011495952A CN 112463757 A CN112463757 A CN 112463757A
- Authority
- CN
- China
- Prior art keywords
- node
- locking
- distributed
- file
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000008569 process Effects 0.000 claims abstract description 14
- 238000012545 processing Methods 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 11
- 230000004048 modification Effects 0.000 claims description 7
- 238000012986 modification Methods 0.000 claims description 7
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000005516 engineering process Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012508 change request Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008014 freezing Effects 0.000 description 1
- 238000007710 freezing Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种分布式系统的资源访问方法,包括:节点判断本地的分布式锁文件中的拿锁节点是否为所述节点;若是,则执行资源访问操作;若否,则向数据节点发送加锁请求,以便所述数据节点根据所述加锁请求对所述数据节点的分布式锁文件进行处理得到新的分布式锁文件,并将所述新的分布式锁文件发送至所述节点;执行所述判断本地的分布式锁文件中的拿锁节点是否为所述节点的步骤,直至所述拿锁节点为所述节点时,执行业务访问资源操作。通过在节点中实现锁操作,避免多个节点同时访问数据,提高数据的一致性。本申请还公开了一种分布式系统的资源访问装置、服务器以及计算机可读存储介质,具有以上有益效果。
Description
技术领域
本申请涉及分布式技术领域,特别涉及一种分布式系统的资源访问方法、资源访问装置、服务器以及计算机可读存储介质。
背景技术
随着信息技术的不断发展,出现了分布式系统。分布式系统是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件,而不是硬件。分布式系统是多个处理机通过通信线路互联而构成的松散耦合的系统。从系统中某台处理机来看,其余的处理机和相应的资源都是远程的,只有它自己的资源才是本地的。
相关技术中,为了访问到分布式系统中的不同数据资源,需要协调不同系统之间同步访问共同的资源。但是,容易出现不同的系统或者是同一个系统的不同主机之间共享了一个或者一组资源,当不同的系统或同一个系统的不同主机之间在同一个时间访问同一资源时,容易出现将资源进行错误的修改,导致数据的一致性问题,降低了系统的可靠性。
因此,如何提高分布式系统访问数据的一致性是本领域技术人员关注的重点问题。
发明内容
本申请的目的是提供一种分布式系统的资源访问方法、资源访问装置、服务器以及计算机可读存储介质,通过对分布式锁文件的判断操作,并且当拿锁节点为该节点时即可进行资源访问操作,当不为拿锁节点时向数据节点发送加锁请求,以便进行加锁处理,直至分布式锁文件中的拿锁节点为该节点时进行资源访问,实现了对分布式资源的加锁处理,提高了数据访问的一致性。
为解决上述技术问题,本申请提供一种分布式系统的资源访问方法,包括:
节点判断本地的分布式锁文件中的拿锁节点是否为所述节点;
若是,则执行资源访问操作;
若否,则向数据节点发送加锁请求,以便所述数据节点根据所述加锁请求对所述数据节点的分布式锁文件进行处理得到新的分布式锁文件,并将所述新的分布式锁文件发送至所述节点;
执行所述判断本地的分布式锁文件中的拿锁节点是否为所述节点的步骤,直至所述拿锁节点为所述节点时,执行业务访问资源操作。
可选的,还包括:
当所述分布式锁文件中拿锁节点为空时,将所述节点的唯一标识写入所述分布式锁文件,并执行业务资源操作。
可选的,还包括:
当所述业务资源操作执行完成时,判断所述节点是否为数据节点;
当所述节点不为数据节点时,发送数据节点身份请求,以便获取数据节点身份权限;
当所述节点为数据节点时,将所述分布式锁文件的拿锁节点修改为空。
可选的,所述数据节点根据所述加锁请求对所述数据节点的分布式锁文件进行处理得到新的分布式锁文件,包括:
所述数据节点接收所述加锁请求;
判断所述数据节点的分布式锁文件中的拿锁节点是否处理完成;
若是,则将所述数据节点的分布式锁文件中的拿锁节点修改为所述加锁请求对应的节点,向该节点发送该分布式锁文件;
若否,则向该节点发送该分布式锁文件。
本申请还提供一种分布式系统的资源访问装置,包括:
加锁判断模块,用于判断本地的分布式锁文件中的拿锁节点是否为所述节点;
资源访问模块,用于当所述拿锁节点为所述节点时,执行资源访问操作;
加锁请求模块,用于当所述拿锁节点不为所述节点时,向数据节点发送加锁请求,以便所述数据节点根据所述加锁请求对所述数据节点的分布式锁文件进行处理得到新的分布式锁文件,并将所述新的分布式锁文件发送至所述节点;
循环判断模块,用于执行所述判断本地的分布式锁文件中的拿锁节点是否为所述节点的步骤,直至所述拿锁节点为所述节点时,执行业务访问资源操作。
可选的,还包括:
拿锁节点写入模块,用于当所述分布式锁文件中拿锁节点为空时,将所述节点的唯一标识写入所述分布式锁文件,并执行业务资源操作。
可选的,还包括:
访问完成操作模块,用于当所述业务资源操作执行完成时,判断所述节点是否为数据节点;当所述节点不为数据节点时,发送数据节点身份请求,以便获取数据节点身份权限;当所述节点为数据节点时,将所述分布式锁文件的拿锁节点修改为空。
可选的,所述数据节点,包括:
加锁请求接收单元,用于接收所述加锁请求;
处理状态判断单元,用于判断所述数据节点的分布式锁文件中的拿锁节点是否处理完成;
修改单元,用于当处理完成时,将所述数据节点的分布式锁文件中的拿锁节点修改为所述加锁请求对应的节点,向该节点发送该分布式锁文件;
发送单元,用于当未处理完成时,向该节点发送该分布式锁文件。
本申请还提供一种服务器,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述的资源访问方法的步骤。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的资源访问方法的步骤。
本申请所提供的一种分布式系统的资源访问方法,包括:节点判断本地的分布式锁文件中的拿锁节点是否为所述节点;若是,则执行资源访问操作;若否,则向数据节点发送加锁请求,以便所述数据节点根据所述加锁请求对所述数据节点的分布式锁文件进行处理得到新的分布式锁文件,并将所述新的分布式锁文件发送至所述节点;执行所述判断本地的分布式锁文件中的拿锁节点是否为所述节点的步骤,直至所述拿锁节点为所述节点时,执行业务访问资源操作。
通过对分布式锁文件的判断操作,并且当拿锁节点为该节点时即可进行资源访问操作,当不为拿锁节点时向数据节点发送加锁请求,以便进行加锁处理,直至分布式锁文件中的拿锁节点为该节点时进行资源访问,实现了对分布式资源的加锁处理,提高了数据访问的一致性。
本申请还提供一种分布式系统的资源访问装置、服务器以及计算机可读存储介质,具有以上有益效果,在此不作赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种分布式系统的资源访问方法的流程图;
图2为本申请实施例所提供的一种分布式系统的资源访问装置的结构示意图。
具体实施方式
本申请的核心是提供一种分布式系统的资源访问方法、资源访问装置、服务器以及计算机可读存储介质,通过对分布式锁文件的判断操作,并且当拿锁节点为该节点时即可进行资源访问操作,当不为拿锁节点时向数据节点发送加锁请求,以便进行加锁处理,直至分布式锁文件中的拿锁节点为该节点时进行资源访问,实现了对分布式资源的加锁处理,提高了数据访问的一致性。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
相关技术中,为了访问到分布式系统中的不同数据资源,需要协调不同系统之间同步访问共同的资源。但是,容易出现不同的系统或者是同一个系统的不同主机之间共享了一个或者一组资源,当不同的系统或同一个系统的不同主机之间在同一个时间访问同一资源时,容易出现将资源进行错误的修改,导致数据的一致性问题,降低了系统的可靠性。
因此,本申请提供一种分布式系统的资源访问方法,通过对分布式锁文件的判断操作,并且当拿锁节点为该节点时即可进行资源访问操作,当不为拿锁节点时向数据节点发送加锁请求,以便进行加锁处理,直至分布式锁文件中的拿锁节点为该节点时进行资源访问,实现了对分布式资源的加锁处理,提高了数据访问的一致性。
以下通过一个实施例,对本申请提供的一种分布式系统的资源访问方法进行说明。
请参考图1,图1为本申请实施例所提供的一种分布式系统的资源访问方法的流程图。
本实施例中,该方法可以包括:
S101,节点判断本地的分布式锁文件中的拿锁节点是否为节点;若是,则执行S102;若否,则执行S103;
本步骤旨在判断本地中存储的分布式锁文件中记录的拿锁节点是否为该节点。其中,拿锁节点即为在本实施例中,具有资源访问权限的节点。也就是说,当A节点在分布式锁文件记录为拿锁节点时,该节点就可以访问对应的资源,而其他节点则无法访问该节点。在任何时刻中该资源只有一个节点可以进行访问,保证了此时数据资源访问的一致性。
其中,分布式锁文件是指在分布式环境中,用于存储拿锁记录的文件。每个节点中都存储有一个分布式锁文件,当该节点需要执行资源访问操作时,通过判断分布式锁文件中的拿锁节点是否为本节点即可,确定是否执行资源访问操作。
其中,分布式锁文件可以通过集群管理服务器进行实时更新,也可以通过中继节点实现每个节点中的分布式锁文件的更新,还可以通过主动获取的方式更新本地的分布式锁文件。可见,本步骤中更新分布式锁文件的方式并不唯一,在此不做具体限定。
进一步的,本实施例中为了降低分布式锁文件更新占用的带宽,提高集群中的网络性能利用率,本实施例中的分布式锁文件采用被动更新的方式。当分布式锁文件被修改时,修改请求的节点申请成为数据节点,并对该分布式锁文件进行修改,被请求的节点接收修改后的分布式锁文件。也就是说,本实施例中的分布式锁文件不是全部整体更新的,当节点对本地的分布式锁文件进行判断时,该分布式锁文件的内容可能不是最新,并且该文件中记录的拿锁节点的状态也不确定。当该拿锁节点为本节点时,说明没有其他节点请求修改该分布式锁文件,即为最新的分布式锁文件。当该拿锁节点不为本节点时,说明该分布式锁文件已经被其他节点进行了修改,可能不是最新的分布式锁文件,需要请求其他节点,获取最新的分布式锁文件。
S102,若是,则执行资源访问操作;
在S101的基础上,本步骤中旨在执行资源访问操作。也就是,确定了在分布式锁文件中记录的拿锁节点为本节点,即可执行资源访问操作。
在分布式系统的运行过程中,会出现本地的分布式锁文件不是最新的文件,该文件的内容被其他的节点进行了修改。因此,本实施例中当需要对资源进行访问的时候,需要判断本地的分布式锁文件中的拿锁节点是否为本节点,进一步确定是否执行资源访问操作。
其中,本步骤执行的资源访问操作可以采用现有技术提供的任意一种资源访问操作,在此不做具体限定。
S103,若否,则向数据节点发送加锁请求,以便数据节点根据加锁请求对数据节点的分布式锁文件进行处理得到新的分布式锁文件,并将新的分布式锁文件发送至节点;
在S101的基础上,本步骤旨在向数据节点发送加锁请求。其中,加锁请求可以被数据节点受理,也可以不被数据节点受理。该数据节点均会向该节点返回最新的分布式锁文件。
其中,数据节点是指在分布式集群中拥有分布式锁文件修改权限的文件。该数据节点可以是拿锁节点,也可以不是拿锁节点。
其中,数据节点对加锁请求进行处理的过程可以参考以下可选方案。
进一步的,本步骤中的数据节点执行的操作可以包括:
步骤1,数据节点接收加锁请求;
步骤2,判断数据节点的分布式锁文件中的拿锁节点是否处理完成;
步骤3,若是,则将数据节点的分布式锁文件中的拿锁节点修改为加锁请求对应的节点,向该节点发送该分布式锁文件;
步骤4,若否,则向该节点发送该分布式锁文件。
可见,本可选方案中主要是对数据节点如何对加锁请求进行处理做说明。本可选方案中首先数据节点接收加锁请求;然后,判断数据节点的分布式锁文件中的拿锁节点是否处理完成;若是,则将数据节点的分布式锁文件中的拿锁节点修改为加锁请求对应的节点,向该节点发送该分布式锁文件;若否,则向该节点发送该分布式锁文件。很显然,本数据节点中无论对应的拿锁节点是否处理完成,都向节点返回最新的分布式锁文件,以便该节点确定是否可以执行资源访问操作,还是不执行资源访问操作。
S104,执行判断本地的分布式锁文件中的拿锁节点是否为节点的步骤,直至拿锁节点为节点时,执行业务访问资源操作。
在S103的基础上,本步骤旨在循环判断分布式锁文件中的拿锁节点是否为该节点,若是即可执行对应的资源访问操作。也就是,当接收到的分布式锁文件中的拿锁节点还不是本节点时,循环发送加锁请求并判断,直至为本节点。
此外,该数据节点返回的最新的分布式锁文件中的拿锁节点还可以是空,此时就可以直接将本节点的标识写入该拿锁节点中。本实施例还可以包括:
当分布式锁文件中拿锁节点为空时,将节点的唯一标识写入分布式锁文件,并执行业务资源操作。
进一步的,本实施例还可以包括:
步骤1,当业务资源操作执行完成时,判断节点是否为数据节点;
步骤2,当节点不为数据节点时,发送数据节点身份请求,以便获取数据节点身份权限;
步骤3,当节点为数据节点时,将分布式锁文件的拿锁节点修改为空。
可见,本可选方案中主要是对当执行完成时如何进行操作做说明。本可选方案中当业务资源操作执行完成时,判断该节点是否为数据节点,也就是判断是否可以对分布式锁文件进行修改。当不是数据节点,发送数据节点身份请求,以便获取数据节点身份权限,并且还可以获取到最新的分布式锁文件。当节点为数据节点时,将分布式锁文件的拿锁节点修改为空。以便其他节点获取到新的分布式锁文件并进行修改。
综上,本实施例通过对分布式锁文件的判断操作,并且当拿锁节点为该节点时即可进行资源访问操作,当不为拿锁节点时向数据节点发送加锁请求,以便进行加锁处理,直至分布式锁文件中的拿锁节点为该节点时进行资源访问,实现了对分布式资源的加锁处理,提高了数据访问的一致性。
以下通过一个具体的实施例,对本申请提供的一种分布式系统的资源访问方法做进一步说明。
本实施例中,通过基于hash存储的key-value数据库实现分布式锁文件。每个节点都有一个对应的分布式锁文件,并借此实现不同分布式节点之间的加锁需求。
本实施例中分布式集群中的节点具有永久不变的唯一标识,用于在数据库中表明锁的拥有者身份。分布式锁文件本身是一个单独的db文件,分布式锁文件内容的存储格式借助hash桶技术。具有相同hash值的key会通过挂链的方式存储,具体实现中通过存储下一个record的offset实现链式访问。另外,针对已经删除的key,在删除对应的record之后通过freelist的方式挂载到空闲链表上,并尽可能将相邻的record进行合并,实现更大的空闲存储区。
本实施例针对单个key,也就是单个节点引入了数据节点和中继节点的概念,数据节点的record永远是最新的,中继节点永远知道数据节点的标识;中继节点从当前的活动节点中选择而来,在活动节点没有变化的情况下,单个key的中继节点保持不变。单个record中记录了数据节点的唯一标识以及该key现有的拿锁节点的唯一标识。
当单个节点尝试针对某个key加锁时,会通过上述数据库的加锁接口在本节点对该key所属的hash桶加锁;然后获取该key所保存的record信息;如果发现record记录的数据节点不是本节点,也就是record记录的数据不是最新的,就需要发起加锁请求到中继节点并经中继节点转发给数据节点;数据节点收到加锁请求之后,将请求的初始发起者升为新的数据节点,并记录在自己节点的record中,然后给中继节点发送数据节点变动请求,请求中携带新的数据节点以及record记录的拿锁节点;中继节点收到后也将新的数据节点记录在自己节点的record中,最后将升级成数据节点的回应发给请求的初始节点;初始节点收到请求,更新本节点record中记录的数据节点和拿锁节点信息。
当节点升级为对应key的数据节点之后,查看record中记录的拿锁节点是否是本节点,如果是本节点就可以进行拿锁后的业务操作;如果发现不是本节点就需要释放本节点数据库对该key的加锁,重新尝试上述步骤,直至发现最新record中记录的拿锁节点已经不存在,则将本节点的唯一标识写入record中,表明拿锁成功。
本实施例的系统中还存在一个数据库管理的集群,在出现节点故障的时候,集群当前的主节点能够处理存活节点之间的数据一致性;具体操作是主节点发起对该数据库的整体加锁操作,在每个存活节点上冻结该数据库;冻结之后通知所有存活节点释放之前的锁并重新尝试加锁;然后将所有的record中的拿锁记录清空,数据节点修改成新的中继节点,并同步到存活的每个节点中。清空记录之后解冻所有存活节点的数据库,等待新的加锁操作进行。
可见,本实施例通过对分布式锁文件的判断操作,并且当拿锁节点为该节点时即可进行资源访问操作,当不为拿锁节点时向数据节点发送加锁请求,以便进行加锁处理,直至分布式锁文件中的拿锁节点为该节点时进行资源访问,实现了对分布式资源的加锁处理,提高了数据访问的一致性。
下面对本申请实施例提供的分布式系统的资源访问装置进行介绍,下文描述的分布式系统的资源访问装置与上文描述的分布式系统的资源访问方法可相互对应参照。
请参考图2,图2为本申请实施例所提供的一种分布式系统的资源访问装置的结构示意图。
本实施例中,该装置可以包括:
加锁判断模块100,用于判断本地的分布式锁文件中的拿锁节点是否为节点;
资源访问模块200,用于当拿锁节点为节点时,执行资源访问操作;
加锁请求模块300,用于当拿锁节点不为节点时,向数据节点发送加锁请求,以便数据节点根据加锁请求对数据节点的分布式锁文件进行处理得到新的分布式锁文件,并将新的分布式锁文件发送至节点;
循环判断模块400,用于执行判断本地的分布式锁文件中的拿锁节点是否为节点的步骤,直至拿锁节点为节点时,执行业务访问资源操作。
可选的,该装置还可以包括:
拿锁节点写入模块,用于当分布式锁文件中拿锁节点为空时,将节点的唯一标识写入分布式锁文件,并执行业务资源操作。
可选的,该装置还可以包括:
访问完成操作模块,用于当业务资源操作执行完成时,判断节点是否为数据节点;当节点不为数据节点时,发送数据节点身份请求,以便获取数据节点身份权限;当节点为数据节点时,将分布式锁文件的拿锁节点修改为空。
可选的,该数据节点,包括:
加锁请求接收单元,用于接收加锁请求;
处理状态判断单元,用于判断数据节点的分布式锁文件中的拿锁节点是否处理完成;
修改单元,用于当处理完成时,将数据节点的分布式锁文件中的拿锁节点修改为加锁请求对应的节点,向该节点发送该分布式锁文件;
发送单元,用于当未处理完成时,向该节点发送该分布式锁文件。
本申请实施例还提供一种服务器,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如以上实施例所述的资源访问方法的步骤。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如以上实施例所述的资源访问方法的步骤。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种分布式系统的资源访问方法、资源访问装置、服务器以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
Claims (10)
1.一种分布式系统的资源访问方法,其特征在于,包括:
节点判断本地的分布式锁文件中的拿锁节点是否为所述节点;
若是,则执行资源访问操作;
若否,则向数据节点发送加锁请求,以便所述数据节点根据所述加锁请求对所述数据节点的分布式锁文件进行处理得到新的分布式锁文件,并将所述新的分布式锁文件发送至所述节点;
执行所述判断本地的分布式锁文件中的拿锁节点是否为所述节点的步骤,直至所述拿锁节点为所述节点时,执行业务访问资源操作。
2.根据权利要求1所述的资源访问方法,其特征在于,还包括:
当所述分布式锁文件中拿锁节点为空时,将所述节点的唯一标识写入所述分布式锁文件,并执行业务资源操作。
3.根据权利要求1所述的资源访问方法,其特征在于,还包括:
当所述业务资源操作执行完成时,判断所述节点是否为数据节点;
当所述节点不为数据节点时,发送数据节点身份请求,以便获取数据节点身份权限;
当所述节点为数据节点时,将所述分布式锁文件的拿锁节点修改为空。
4.根据权利要求1所述的资源访问方法,其特征在于,所述数据节点根据所述加锁请求对所述数据节点的分布式锁文件进行处理得到新的分布式锁文件,包括:
所述数据节点接收所述加锁请求;
判断所述数据节点的分布式锁文件中的拿锁节点是否处理完成;
若是,则将所述数据节点的分布式锁文件中的拿锁节点修改为所述加锁请求对应的节点,向该节点发送该分布式锁文件;
若否,则向该节点发送该分布式锁文件。
5.一种分布式系统的资源访问装置,其特征在于,包括:
加锁判断模块,用于判断本地的分布式锁文件中的拿锁节点是否为所述节点;
资源访问模块,用于当所述拿锁节点为所述节点时,执行资源访问操作;
加锁请求模块,用于当所述拿锁节点不为所述节点时,向数据节点发送加锁请求,以便所述数据节点根据所述加锁请求对所述数据节点的分布式锁文件进行处理得到新的分布式锁文件,并将所述新的分布式锁文件发送至所述节点;
循环判断模块,用于执行所述判断本地的分布式锁文件中的拿锁节点是否为所述节点的步骤,直至所述拿锁节点为所述节点时,执行业务访问资源操作。
6.根据权利要求5所述的资源访问装置,其特征在于,还包括:
拿锁节点写入模块,用于当所述分布式锁文件中拿锁节点为空时,将所述节点的唯一标识写入所述分布式锁文件,并执行业务资源操作。
7.根据权利要求5所述的资源访问装置,其特征在于,还包括:
访问完成操作模块,用于当所述业务资源操作执行完成时,判断所述节点是否为数据节点;当所述节点不为数据节点时,发送数据节点身份请求,以便获取数据节点身份权限;当所述节点为数据节点时,将所述分布式锁文件的拿锁节点修改为空。
8.根据权利要求5所述的资源访问装置,其特征在于,所述数据节点,包括:
加锁请求接收单元,用于接收所述加锁请求;
处理状态判断单元,用于判断所述数据节点的分布式锁文件中的拿锁节点是否处理完成;
修改单元,用于当处理完成时,将所述数据节点的分布式锁文件中的拿锁节点修改为所述加锁请求对应的节点,向该节点发送该分布式锁文件;
发送单元,用于当未处理完成时,向该节点发送该分布式锁文件。
9.一种服务器,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至4任一项所述的资源访问方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述的资源访问方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011495952.7A CN112463757A (zh) | 2020-12-17 | 2020-12-17 | 一种分布式系统的资源访问方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011495952.7A CN112463757A (zh) | 2020-12-17 | 2020-12-17 | 一种分布式系统的资源访问方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112463757A true CN112463757A (zh) | 2021-03-09 |
Family
ID=74803775
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011495952.7A Pending CN112463757A (zh) | 2020-12-17 | 2020-12-17 | 一种分布式系统的资源访问方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112463757A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113253944A (zh) * | 2021-07-07 | 2021-08-13 | 苏州浪潮智能科技有限公司 | 一种磁盘阵列访问方法、系统及存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060253856A1 (en) * | 2005-04-13 | 2006-11-09 | Carl Hu | Fault tolerant distributed lock management |
US20100023521A1 (en) * | 2008-07-28 | 2010-01-28 | International Business Machines Corporation | System and method for managing locks across distributed computing nodes |
US20110276690A1 (en) * | 2010-05-05 | 2011-11-10 | Steven John Whitehouse | Distributed resource contention detection |
CN103297268A (zh) * | 2013-05-13 | 2013-09-11 | 北京邮电大学 | 基于p2p技术的分布式数据一致性维护系统和方法 |
US20150120925A1 (en) * | 2013-10-30 | 2015-04-30 | Futurewei Technologies, Inc. | Lock elevation in a distributed file storage system |
US9817703B1 (en) * | 2013-12-04 | 2017-11-14 | Amazon Technologies, Inc. | Distributed lock management using conditional updates to a distributed key value data store |
CN107423403A (zh) * | 2017-07-27 | 2017-12-01 | 郑州云海信息技术有限公司 | 一种基于分布式文件系统的融合锁管理方法和系统 |
CN107580066A (zh) * | 2017-09-20 | 2018-01-12 | 郑州云海信息技术有限公司 | 一种分布式nas存储系统中文件访问的方法、装置及系统 |
CN109144947A (zh) * | 2018-09-04 | 2019-01-04 | 郑州云海信息技术有限公司 | 一种虚拟化系统的集群文件系统的控制方法和装置 |
CN109697127A (zh) * | 2017-10-24 | 2019-04-30 | 华为技术有限公司 | 一种对共享资源的访问操作加锁的方法和装置 |
CN109753364A (zh) * | 2018-12-28 | 2019-05-14 | 北京明朝万达科技股份有限公司 | 一种基于网络的分布式锁的实现方法、设备及介质 |
CN110971700A (zh) * | 2019-12-10 | 2020-04-07 | 腾讯云计算(北京)有限责任公司 | 分布式锁的实现方法及装置 |
-
2020
- 2020-12-17 CN CN202011495952.7A patent/CN112463757A/zh active Pending
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060253856A1 (en) * | 2005-04-13 | 2006-11-09 | Carl Hu | Fault tolerant distributed lock management |
US20100023521A1 (en) * | 2008-07-28 | 2010-01-28 | International Business Machines Corporation | System and method for managing locks across distributed computing nodes |
US20110276690A1 (en) * | 2010-05-05 | 2011-11-10 | Steven John Whitehouse | Distributed resource contention detection |
CN103297268A (zh) * | 2013-05-13 | 2013-09-11 | 北京邮电大学 | 基于p2p技术的分布式数据一致性维护系统和方法 |
US20150120925A1 (en) * | 2013-10-30 | 2015-04-30 | Futurewei Technologies, Inc. | Lock elevation in a distributed file storage system |
US9817703B1 (en) * | 2013-12-04 | 2017-11-14 | Amazon Technologies, Inc. | Distributed lock management using conditional updates to a distributed key value data store |
CN107423403A (zh) * | 2017-07-27 | 2017-12-01 | 郑州云海信息技术有限公司 | 一种基于分布式文件系统的融合锁管理方法和系统 |
CN107580066A (zh) * | 2017-09-20 | 2018-01-12 | 郑州云海信息技术有限公司 | 一种分布式nas存储系统中文件访问的方法、装置及系统 |
CN109697127A (zh) * | 2017-10-24 | 2019-04-30 | 华为技术有限公司 | 一种对共享资源的访问操作加锁的方法和装置 |
CN109144947A (zh) * | 2018-09-04 | 2019-01-04 | 郑州云海信息技术有限公司 | 一种虚拟化系统的集群文件系统的控制方法和装置 |
CN109753364A (zh) * | 2018-12-28 | 2019-05-14 | 北京明朝万达科技股份有限公司 | 一种基于网络的分布式锁的实现方法、设备及介质 |
CN110971700A (zh) * | 2019-12-10 | 2020-04-07 | 腾讯云计算(北京)有限责任公司 | 分布式锁的实现方法及装置 |
Non-Patent Citations (1)
Title |
---|
刘芬等: ""基于Zookeeper的分布式锁服务及性能优化"", 《计算机研究与发展》, vol. 2014, no. 1, 15 December 2014 (2014-12-15), pages 229 - 234 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113253944A (zh) * | 2021-07-07 | 2021-08-13 | 苏州浪潮智能科技有限公司 | 一种磁盘阵列访问方法、系统及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5841177B2 (ja) | マルチサーバ予約システムにおける同期化メカニズムのための方法及びシステム | |
CN107577678B (zh) | 处理数据库事务的方法、客户端和服务器 | |
US7636868B2 (en) | Data replication in a distributed system | |
CN109493223B (zh) | 一种记账方法及装置 | |
WO2016134590A1 (zh) | 处理事务的方法、处理节点、中心节点和集群 | |
CN108509462B (zh) | 一种同步活动事务表的方法及装置 | |
CN112162846B (zh) | 事务处理方法、设备及计算机可读存储介质 | |
CN109697127B (zh) | 一种对共享资源的访问操作加锁的方法和装置 | |
RU2585973C2 (ru) | Способ и устройство управления операцией блокировки системы баз данных | |
CN101751415A (zh) | 元数据服务系统、元数据同步方法与写服务器更新方法 | |
CN111797172A (zh) | 数据迁移方法、装置、设备、分布式系统及存储介质 | |
CN112650812A (zh) | 一种数据分片存储方法、装置、计算机设备和存储介质 | |
CN113760976A (zh) | 业务的处理方法、装置、设备及存储介质 | |
CN115454656A (zh) | 一种事务的处理方法、设备及存储介质 | |
CN113342507B (zh) | 一种分布式锁服务实现方法、装置及计算机设备 | |
CN109766317B (zh) | 一种文件的删除方法、装置、设备及存储介质 | |
CN113190619B (zh) | 分布式kv数据库的数据读写方法、系统、设备和介质 | |
CN112463757A (zh) | 一种分布式系统的资源访问方法及相关装置 | |
CN111708835B (zh) | 区块链数据存储方法及装置 | |
CN107967265B (zh) | 文件的访问方法、数据服务器和文件访问系统 | |
WO2023274409A1 (zh) | 在区块链系统中执行交易的方法和区块链节点 | |
CN112381650B (zh) | 跨链互操作的交易处理方法、装置、电子设备和存储介质 | |
CN114328564A (zh) | 分布式锁的实现方法以及装置 | |
CN115022307A (zh) | 一种文件下载方法及装置、存储介质及电子设备 | |
CN113377714A (zh) | 基于分布式存储系统的目标器重命名方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |