本发明涉及分布式系统领域,特别涉及一种分布式系统的资源访问方法、系统、设备及存储介质。
背景技术:
1、在分布式系统架构下,对临界区的共享资源的访问涉及到运行在多个主机上的线程,而临界区共享资源往往在同一时刻只允许单一线程对其访问,目前常用的方案是在某单一线程对其访问时,增加锁标志,实现对临界区资源的互斥访问,比如java中的synchronize关键字在对象头中设置锁标志,java中的lock锁通过aqs中的volatile类型字段state设置锁标志等。互斥访问引入了额外的组件或协调程序,大大增加了软件架构的复杂性和运维的不确定性。
2、因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。
技术实现思路
1、本发明的目的是提供一种分布式系统的资源访问方法、系统、设备及存储介质,能够避免一部分节点的失效或恶意行为,提高临界资源的访问安全性,无需引入额外的组件或协调程序,降低软件架构的复杂性和运维难度。
2、为解决上述技术问题,本发明提供了一种分布式系统的资源访问方法,应用于分布式系统中的每一协调器节点,所述协调器节点存储有分布式哈希表,所述分布式哈希表包括临界资源的信息,所述信息包括访问状态,所述资源访问方法包括:
3、当接收到所述分布式系统中的任一节点发送的访问请求,确定所述访问请求对应的待访问临界资源;
4、基于自身存储的分布式哈希表中的所述待临界资源的访问状态对所述访问请求进行决策,并将决策结果发送给所述分布式系统中的其他协调器节点;
5、当根据自身决策结果和所述其他协调器节点的决策结果确定所述访问请求满足同意访问条件,允许所述节点访问所述待访问临界资源,并更新自身存储的分布式哈希表中的所述待访问临界资源的访问状态。
6、可选的,所述决策结果包括与同意访问对应的第一决策结果;当根据自身决策结果和所述其他协调器节点的决策结果确定所述访问请求满足同意访问条件,允许所述节点访问所述待访问临界资源,并更新自身存储的分布式哈希表中的所述待访问临界资源的访问状态之前,所述资源访问方法还包括:
7、确定所述自身决策结果以及所有所述其他协调器节点的决策结果中的所述第一决策结果的第一数量;
8、判断所述第一数量是否超过预设阈值;
9、若是,判定所述访问请求满足所述同意访问条件;
10、若否,判定所述访问请求不满足所述同意访问条件。
11、可选的,所述决策结果还包括与拒绝访问对应的第二决策结果;当根据自身决策结果和所述其他协调器节点的决策结果确定所述访问请求满足同意访问条件,允许所述节点访问所述待访问临界资源,并更新自身存储的分布式哈希表中的所述待访问临界资源的访问状态之前,所述资源访问方法还包括:
12、确定所述自身决策结果以及所有所述其他协调器节点的决策结果中的所述第二决策结果的第二数量;
13、当所述第二数量大于所述第一数量,判定所访问请求不满足所述同意访问条件。
14、可选的,所述分布式系统还包括至少一个验证节点,当根据自身决策结果和所述其他协调器节点的决策结果确定所述访问请求满足同意访问条件,允许所述节点访问所述待访问临界资源,并更新自身存储的分布式哈希表中的所述待访问临界资源的访问状态之后,所述资源访问方法还包括:
15、将满足所述同意访问条件的访问请求发送至所述验证节点,以便所述验证节点对所述访问请求进行安全一致性验证,当安全一致性验证结果满足报警条件,执行安全操作。
16、可选的,对所述访问请求进行安全一致性验证的过程包括:
17、将所述访问请求对应的待访问临界资源及操作类型与发出所述访问请求的节点的允许访问权限和允许操作类型进行安全验证;
18、对所述访问请求对应的操作的实际发生状态与预期发生状态进行第一次一致性验证;
19、对所述访问请求对应的更新状态与预期更新状态进行第二次一致性验证。
20、可选的,所述报警条件包括所述安全验证的验证结果、所述第一次一致性验证的验证结果以及所述第二次一致性验证的验证结果中存在至少一个验证结果为验证失败。
21、可选的,当接收到所述分布式系统中的任一节点发送的访问请求,确定所述访问请求对应的待访问临界资源之前,所述系统资源访问方法还包括:
22、为每个所述临界资源分配一个独立的标识符;
23、基于每一所述临界资源的状态信息和所述标识符以及所述分布式系统中的各个所述节点的信息建立所述分布式哈希表。
24、为解决上述技术问题,本发明还提供了一种分布式系统的资源访问系统,应用于分布式系统中的每一协调器节点,所述协调器节点存储有分布式哈希表,所述分布式哈希表包括临界资源的信息,所述信息包括访问状态,所述资源访问系统包括:
25、第一确定模块,用于当接收到所述分布式系统中的任一节点发送的访问请求,确定所述访问请求对应的待访问临界资源;
26、决策模块,用于基于自身存储的分布式哈希表中的所述待临界资源的访问状态对所述访问请求进行决策,并将决策结果发送给所述分布式系统中的其他协调器节点;
27、更新控制模块,用于当根据自身决策结果和所述其他协调器节点的决策结果确定所述访问请求满足同意访问条件,允许所述节点访问所述待访问临界资源,并更新自身存储的分布式哈希表中的所述待访问临界资源的访问状态。
28、为解决上述技术问题,本发明还提供了一种电子设备,包括:
29、存储器,用于存储计算机程序;
30、处理器,用于执行所述计算机程序时实现如上文任意一项所述的分布式系统的资源访问方法的步骤。
31、为解决上述技术问题,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文任意一项所述的分布式系统的资源访问方法的步骤。
32、本发明提供了一种分布式系统的资源访问方法,将临界资源的相关信息存储在分布式哈希表中,以便高效的进行临界资源的数据管理,将分布式哈希表存储在分布式系统中的各个协调器节点上,当分布式系统中存在任一节点需要访问某一临界资源,向各个协调器节点广播其访问请求,各个协调器节点对访问请求进行决策,基于所有协调器节点的决策结果确定访问请求满足同意访问条件时,更新自身存储的分布式哈希表中的待访问临界资源的访问状态,以使节点访问待访问临界资源,能够避免一部分节点的失效或恶意行为,提高临界资源的访问安全性,无需引入额外的组件或协调程序,降低软件架构的复杂性和运维难度。
33、本发明还提供了一种分布式系统的资源访问系统、电子设备及计算机可读存储介质,具有和上述资源访问方法相同的有益效果。
1.一种分布式系统的资源访问方法,其特征在于,应用于分布式系统中的每一协调器节点,所述协调器节点存储有分布式哈希表,所述分布式哈希表包括临界资源的信息,所述信息包括访问状态,所述资源访问方法包括:
2.根据权利要求1所述的分布式系统的资源访问方法,其特征在于,所述决策结果包括与同意访问对应的第一决策结果;当根据自身决策结果和所述其他协调器节点的决策结果确定所述访问请求满足同意访问条件,允许所述节点访问所述待访问临界资源,并更新自身存储的分布式哈希表中的所述待访问临界资源的访问状态之前,所述资源访问方法还包括:
3.根据权利要求2所述的分布式系统的资源访问方法,其特征在于,所述决策结果还包括与拒绝访问对应的第二决策结果;当根据自身决策结果和所述其他协调器节点的决策结果确定所述访问请求满足同意访问条件,允许所述节点访问所述待访问临界资源,并更新自身存储的分布式哈希表中的所述待访问临界资源的访问状态之前,所述资源访问方法还包括:
4.根据权利要求1所述的分布式系统的资源访问方法,其特征在于,所述分布式系统还包括至少一个验证节点,当根据自身决策结果和所述其他协调器节点的决策结果确定所述访问请求满足同意访问条件,允许所述节点访问所述待访问临界资源,并更新自身存储的分布式哈希表中的所述待访问临界资源的访问状态之后,所述资源访问方法还包括:
5.根据权利要求4所述的分布式系统的资源访问方法,其特征在于,对所述访问请求进行安全一致性验证的过程包括:
6.根据权利要求5所述的分布式系统的系统资源访问方法,其特征在于,所述报警条件包括所述安全验证的验证结果、所述第一次一致性验证的验证结果以及所述第二次一致性验证的验证结果中存在至少一个验证结果为验证失败。
7.根据权利要求1-6任意一项所述的分布式系统的系统资源访问方法,其特征在于,当接收到所述分布式系统中的任一节点发送的访问请求,确定所述访问请求对应的待访问临界资源之前,所述系统资源访问方法还包括:
8.一种分布式系统的资源访问系统,其特征在于,应用于分布式系统中的每一协调器节点,所述协调器节点存储有分布式哈希表,所述分布式哈希表包括临界资源的信息,所述信息包括访问状态,所述资源访问系统包括:
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-7任意一项所述的分布式系统的资源访问方法的步骤。