系统拓扑结构维护方法、装置、计算机设备和存储介质与流程

文档序号:26947457发布日期:2021-10-12 20:01阅读:230来源:国知局
系统拓扑结构维护方法、装置、计算机设备和存储介质与流程

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.接收客户端发送的第三业务处理请求,根据一致性哈希算法计算所述第三业务处理请求对应的处理节点标识,并根据所述处理节点标识将所述第三业务处理请求发送至对应的处理节点进行处理;
34.若所述处理节点为新增业务节点,则指示所述新增业务节点返回处理失败信息;
35.等待一个静默期直至所述新增业务节点为正常运行状态,接收所述客户端发送的第四业务处理请求,以指示所述新增业务节点处理所述第四业务处理请求,并向所述客户端返回所述业务处理成功消息。
36.本实施例中,中心节点对于新增业务节点先睡眠一个静默期,再实现新增业务节点的处理功能,不影响其他业务节点的运行,在分布式系统中灵活添加新的业务节点,提高分布式系统的节点拓扑维护灵活性。
37.一种系统拓扑结构维护方法,所述方法包括:
38.在预设的随机值时间间隔机制所产生的时间点,向中心节点发送续约请求,所述续约请求中携带有业务节点自身节点标识信息;所述随机值时间间隔小于预设时间阈值;
39.接收所述中心节点发送的系统拓扑信息,根据所述系统拓扑信息更新本地拓扑信息。
40.在其中一个实施例中,所述接收所述中心节点发送的系统拓扑信息,根据所述系统拓扑信息更新本地拓扑信息,包括:
41.接收中心节点发送的系统拓扑信息,将所述系统拓扑信息与业务节点本地拓扑信息进行比对;
42.若所述系统拓扑信息与所述业务节点本地拓扑信息不一致,则根据所述系统拓扑信息更新所述本地拓扑信息。
43.本实施例中,通过在业务节点内部进行自身业务节点拓扑信息更新,避免了均通过中心节点内部对各业务节点是否更新进行判断,减少中心节点的处理压力,避免了中心节点出现网络风暴的情况。
44.一种系统拓扑结构维护装置,所述装置包括:
45.接收模块,用于接收每一业务节点的续约请求,所述续约请求由所述业务节点根据预设的随机值时间间隔发送;
46.生成模块,用于响应于每一所述续约请求,根据所述续约请求中的节点标识信息生成系统拓扑信息;
47.发送模块,用于在等待至少两个连续的续约周期后,确定系统拓扑重建完毕,并将所述系统拓扑信息发送至每一续约的业务节点上,以指示所述业务节点进行系统拓扑信息更新。
48.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
49.接收每一业务节点的续约请求,所述续约请求由所述业务节点根据预设的随机值时间间隔发送;
50.响应于每一所述续约请求,根据所述续约请求中的节点标识信息生成系统拓扑信息;
51.在等待至少两个连续的续约周期后,确定系统拓扑重建完毕,并将所述系统拓扑信息发送至每一续约的业务节点上,以指示所述业务节点进行系统拓扑信息更新。
52.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
53.接收每一业务节点的续约请求,所述续约请求由所述业务节点根据预设的随机值时间间隔发送;
54.响应于每一所述续约请求,根据所述续约请求中的节点标识信息生成系统拓扑信息;
55.在等待至少两个连续的续约周期后,确定系统拓扑重建完毕,并将所述系统拓扑信息发送至每一续约的业务节点上,以指示所述业务节点进行系统拓扑信息更新。
56.上述系统拓扑结构维护方法、装置、计算机设备和存储介质,接收每一业务节点的续约请求,所述续约请求由所述业务节点根据预设的随机值时间间隔发送;响应于每一所述续约请求,根据所述续约请求中的节点标识信息生成系统拓扑信息;在等待至少两个连续的续约周期后,确定系统拓扑重建完毕,并将所述系统拓扑信息发送至每一续约的业务节点上,以指示所述业务节点进行系统拓扑信息更新。采用本方法,中心节点接管分布式系统时,仅通过接收业务节点的随机值时间间隔发送的续约请求,并根据续约请求中的节点标识信息实现系统拓扑信息的重建,减少中心节点的资源开销同时避免中心节点进行拓扑信息重建时的网络风暴,提高中心节点拓扑维护的稳定性。
附图说明
57.图1为一个实施例中系统拓扑结构维护方法的应用环境图;
58.图2为一个实施例中系统拓扑结构维护方法的流程示意图;
59.图3为一个实施例中删除故障业务节点的步骤的流程示意图;
60.图4为一个实施例中更新业务节点集群的一致性哈希环步骤的流程图;
61.图5为一个实施例中新增业务节点的步骤的流程示意图;
62.图6为另一个实施例中更新业务节点集群的一致性哈希环步骤的流程图;
63.图7为另一个实施例中系统拓扑结构维护方法的流程示意图;
64.图8为一个实施例中业务节点更新比对系统拓扑信息步骤的流程示意图;
65.图9为一个实施例中分布式系统新加入业务节点的示例流程图;
66.图10为一个实施例中分布式系统删除故障业务节点的示例流程图;
67.图11为一个实施例中系统拓扑结构维护装置的结构框图;
68.图12为另一个实施例中系统拓扑结构维护装置的结构框图;
69.图13为一个实施例中计算机设备的内部结构图。
具体实施方式
70.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
71.本技术提供的系统拓扑结构维护方法,可以应用于如图1所示的应用环境中。其中,业务节点102通过网络与中心节点104进行通信。中心节点104接收每一业务节点102的续约请求,该续约请求由业务节点102根据预设的随机值时间间隔发送;然后,中心节点104响应于每一续约请求,根据续约请求中的节点标识信息生成系统拓扑信息;在等待至少两个连续的续约周期后,确定系统拓扑重建完毕,并将系统拓扑信息发送至每一续约的业务节点102上,以指示业务节点102进行系统拓扑信息更新。其中,业务节点102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑,中心节点104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
72.在一个实施例中,如图2所示,提供了一种系统拓扑结构维护方法,以该方法应用于图1中的中心节点104为例进行说明,包括以下步骤:
73.步骤201,接收每一业务节点的续约请求,续约请求由业务节点根据预设的随机值时间间隔发送。
74.具体地,在一个分布式系统中,包括中心节点(也可以称为中心服务器)和业务节点,其中,业务节点数目一般远多于中心节点,多个业务节点可以构成一个业务节点集群,该业务节点集群统一由中心节点进行管理和维护。同时,为了整个分布式系统的稳定性,中心节点也设置多个,多个中心节点间互为主备。在同一时间只有一个主中心节点提供服务,其余中心节点(也称为从中心节点)作为备选,只有当主中心节点宕机时,其他任一从中心节点作为新的主中心节点接管原主中心节点,为分布式系统提供管理和维护服务。
75.中心节点在提供分布式系统的管理和维护服务时,需要掌握分布式系统的节点拓扑信息。由此,中心节点接收每一业务节点的续约请求,以根据续约请求中携带的业务节点的节点标识信息,确定分布式系统中包含的业务节点信息,分布式系统中全部的业务节点信息构成分布式系统的节点拓扑信息。
76.其中,续约请求是由分布式系统的业务节点集群中各业务节点以预设的随机值时间间隔发送的,该随机值时间间隔需要保证小于预设的时间范围阈值,以确保每一续约请求在租约期内的有效性。
77.步骤202,响应于每一续约请求,根据续约请求中的节点标识信息生成系统拓扑信息。
78.在实施中,中心节点响应于每一续约请求,根据每一续约请求中携带的节点标识信息,生成系统节点拓扑信息(也可称为系统拓扑信息)。
79.具体地,每一续约请求中携带有自身业务节点的节点序列号,用于唯一表征该业务节点,然后,中心节点存储每一续约请求的节点序列号,生成对应的系统拓扑信息。
80.步骤203,在等待至少两个连续的续约周期后,确定系统拓扑重建完毕,并将系统拓扑信息发送至每一续约的业务节点上,以指示业务节点进行系统拓扑信息更新。
81.其中,每个续约周期为针对一个业务节点发送连续的两次续约请求的时间间隔。
82.在实施中,中心节点在等待至少两个连续的续约周期后,确定系统拓扑重建完毕,
然后,中心节点将系统拓扑信息发送至每一续约的业务节点上,以指示续约的业务节点进行系统的节点拓扑信息更新。
83.具体地,以主中心节点宕机,从中心节点接管系统服务为例进行说明,为了防止主中心节点宕机后,从中心节点最初接管服务时,业务节点集群中的业务节点并未完全转换续约请求发送对象,造成部分业务节点依旧向宕机的主中心节点发送续约请求,因此,从中心节点需要等待两个连续的续约周期,确保在该时间范围内,全部业务节点续约请求发送对象均已转换至从中心节点,故从中心节点根据该时间范围内接收到的全部的续约请求,可以确定系统拓扑信息重建完毕。进而,从中心节点(也即新主中心节点)将重建后的拓扑信息发送至每一续约的业务节点上,以指示续约的业务节点根据重建后的拓扑信息进行自身拓扑信息的更新。
84.上述系统拓扑结构维护方法中,接收每一业务节点的续约请求,续约请求由业务节点根据预设的随机值时间间隔发送;响应于每一续约请求,根据续约请求中的节点标识信息生成系统拓扑信息;在等待至少两个连续的续约周期后,确定系统拓扑重建完毕,并将系统拓扑信息发送至每一续约的业务节点上,以指示业务节点进行系统拓扑信息更新。采用本方法,中心节点接管分布式系统时,通过接收业务节点的随机值时间间隔发送的续约请求,并根据续约请求中的节点标识信息实现系统拓扑信息的重建,减少中心节点的资源开销,同时避免中心节点进行拓扑信息重建时的网络风暴,提高中心节点拓扑维护的稳定性。
85.在一个实施例中,步骤201之后,该方法还包括:根据本地开机时钟信息,记录业务节点的续约请求的接收时间以及续约请求对应的业务节点的节点标识。
86.在实施中,中心节点根据本地开机时钟信息,记录每一业务节点的续约请求的接收时间以及对应的该续约请求中携带的业务节点的节点标识。以针对每一业务节点对应有该业务节点历次续约请求的时间戳记录。
87.本实施例中,针对业务节点发送的续约请求,不采用业务节点发送的续约请求中携带的时间戳信息,而是利用中心节点自身开机时钟系统,对接收到的续约请求的时间进行记录,确保各续约请求的时间信息的统一性,同时根据接收时间的记录可以识别续约请求的连续性。
88.在一个实施例中,如图3所示,在步骤203之后,该方法还包括:
89.步骤301,在预设的时间范围阈值内未接收到目标业务节点的续约请求,确定目标业务节点故障;时间阈值范围大于或者等于目标业务节点对应的续约周期。
90.在实施中,当中心节点开始提供服务后,针对当前的系统拓扑信息中包含的各业务节点,若在预设的时间范围阈值内未接收到目标业务节点(即业务节点集群中的任一节点)的续约请求,则中心节点确定该目标业务节点故障,其中该时间阈值范围大于或者等于目标业务节点对应的续约周期。
91.步骤302,在系统拓扑信息中删除目标业务节点,得到更新后的系统拓扑信息。
92.在实施中,中心节点在系统拓扑信息中删除目标业务节点对应的节点标识,得到更新后的系统拓扑信息。
93.步骤303,按照预设的业务节点数目划分机制对业务节点集群中的业务节点进行划分,得到划分结果和对应的通知顺序信息,并将更新后的系统拓扑信息根据划分结果和
对应的通知顺序信息,分批次广播给业务节点集群内除目标业务节点之外的其他业务节点,以指示其他业务节点更新系统拓扑信息。
94.其中,该目标业务节点为被中心节点感知为故障的业务节点。
95.在实施中,中心节点按照预设的业务节点数目划分机制(即预设的划分比例)对业务节点集群中的业务节点进行划分,得到划分结果和对应的通知顺序信息,例如,针对业务节点集群中包含的1000个业务节点,可以对应划分为三个批次(分三次进行通知),第一批次包含业务节点1至业务节点300,第二批次包含业务节点301

600,第三批次包含业务节点601

1000,进而中心节点可以将更新后的系统拓扑信息根据业务节点划分结果和对应的通知顺序信息(即对应的批次),分批次广播给业务节点集群中除目标业务节点(故障业务节点)之外的其他业务节点,以指示其他业务节点更新删除了目标业务节点后的系统拓扑信息。
96.本实施例中,中心节点通过预设时间范围阈值内未接收到目标业务节点的续约请求来感知业务节点的故障情况,进而更新系统节点拓扑信息,并通过多次批量(即分批次)的形式将更新后的系统拓扑信息发送至业务节点集群中的业务节点,多次批量发送系统节点拓扑信息减轻了中心节点的处理负担,避免中心节点网络风暴。
97.在一个实施例中,如图4所示,在步骤303之后,该方法还包括:
98.步骤401,更新业务节点集群的一致性哈希环,将故障业务节点对应的哈希环区间转移至业务节点集群中除故障业务节点之外的目标业务节点上,并将故障业务节点加入到一致性哈希环的静默区中。
99.其中,中心节点可以根据一致性哈希算法对于业务节点集群中的业务节点进行区间映射,具体为将业务节点集群中各业务节点的节点标识信息(例如业务节点的id)作为输入值,通过一致性哈希计算,得到一个输出值,该输出值映射在哈希环的环形区域上,表征一个业务节点对应一个环形区间,当用户发送的业务请求通过一致性哈希计算也对应的得到某一请求输出值时,根据该请求输出值遍历一致性哈希环,当遇到的该请求输出值所处的环形区间时,该环形区间对应的业务节点为处理该业务请求的业务节点。
100.在实施中,中心节点更新业务节点集群的一致性哈希环,将故障业务节点对应的哈希环区间转移至业务节点集群中除故障业务节点之外的目标业务节点上,即将由故障业务节点对应的哈希环区间转移为邻近故障业务节点的目标业务节点对应的哈希环区间,并将该故障业务节点加入到一致性哈希环的静默区中,即将故障业务节点对应的哈希环区间映射为哈希环的静默区。其中哈希环的静默区为无法对业务请求进行应答的业务节点对应的区间。
101.步骤402,接收客户端发送的第一业务处理请求,并将第一业务处理请求发送至对应的处理节点进行处理。
102.在实施中,中心节点接收客户端发送的第一业务处理请求(http请求),并根据一致性哈希算法,将第一业务处理请求发送至对应的处理节点(即业务节点)进行处理。
103.步骤403,若处理节点为故障业务节点,则根据一致性哈希算法重新计算第一业务处理请求对应的处理节点的节点标识,并根据计算出的节点标识将第一业务处理请求转发至更新后的目标业务节点,以指示目标业务节点返回处理失败信息。
104.在实施中,若中心节点计算出该第一业务处理请求的处理节点id(identify)对应
为故障业务节点(也即该第一业务处理请求对应的哈希环区间为故障业务节点对应的哈希环区间),则在系统节点拓扑信息中删除该故障业务节点后,需要更新业务节点集群的一致性哈希环,即将故障业务节点加入性哈希环的静默区,而将该故障业务节点对应的原哈希环区间转移至邻近的目标业务节点,然后根据一致性哈希算法重新计算第一业务处理请求对应的处理节点的节点标识,并根据计算出的节点标识将第一业务处理请求转发至更新后的目标业务节点,在故障业务节点处于哈希环的静默区时,新的目标业务节点对于第一业务节点处理请求仅返回处理失败信息,其具体原因如下:
105.针对故障业务节点的故障类型可以包括网络闪断造成的业务节点故障,进而在第一业务处理请求发送至最初处理节点(即当前闪断故障的业务节点)后,故障业务节点网络恢复,可以对业务处理请求进行处理,但是同时由于中心节点感知最初处理节点的闪断,已根据一致性哈希算法重新计算该处理请求的目标业务处理节点,故会出现新的目标业务处理节点与闪断的故障业务节点一同处理业务请求,造成业务处理结果的并发产生网络风暴,因此,目标业务处理节点在故障业务节点还处于静默区(即并未完全在哈希环中删除)时,针对接收到的原处理节点对应为故障业务节点的业务处理请求,仅返回处理失败信息。其中,该处理失败信息可以为特定错误码。
106.步骤404,等待一个静默期,将故障业务节点从一致性哈希环的静默区中删除;静默期为故障业务节点在一致性哈希环的静默区的休眠时间。
107.其中,静默期为故障业务节点在一致性哈希环的静默区的休眠时间。
108.在实施中,中心节点等待一个静默期后,将故障业务节点从一致性哈希环的静默区中删除。
109.步骤405,接收客户端发送的第二业务处理请求,以指示目标业务节点处理第二业务处理请求,并向客户端返回处理成功消息。
110.在实施中,中心节点接收客户端发送的第二业务处理请求,根据一致性哈希算法,计算第二业务处理请求对应的处理节点的节点标识为目标业务节点,则指示目标业务节点处理第二业务处理请求,并向客户端返回处理成功消息。
111.可选地,第二业务处理请求可以为前述第一业务处理请求类型相同且对应的处理节点相同的处理请求,也即该第二业务处理请求对应的哈希环区间仍为原故障业务节点对应的哈希环区间。但此时该哈希环区间已经对应转移至目标业务处理节点的映射范围,且对应的故障业务节点已经在哈希静默区内删除,则可以由目标业务节点正常处理第二业务处理请求,并向客户端返回处理成功消息。
112.本实施例中,中心节点删除故障业务节点后,等待一个静默期,避免故障业务节点在接收到第一业务处理请求后,重新计算处理节点确定的新的目标业务节点一同处理该业务请求,造成由于处理结果的并发而产生网络风暴,提高分布式系统的网络稳定性。
113.在一个实施例中,如图5所示,在步骤203之后,该方法还包括:
114.步骤501,接收新增业务节点发送的新增续约请求。
115.在实施中,中心节点接收新增业务节点发送的新增续约请求。该续约请求中携带有新增业务节点的节点标识信息,例如,节点的序列号。
116.步骤502,响应于新增续约请求,根据新增续约请求更新系统拓扑信息。
117.在实施中,中心节点响应于新增续约请求,根据新增续约请求更新系统节点拓扑
信息。具体地,中心节点响应于新增续约请求,将新增续约请求中包含的新增业务节点的节点标识信息添加至系统节点拓扑信息,得到更新后的系统节点拓扑信息。
118.步骤503,按照预设的业务节点数目划分机制对业务节点集群中的业务节点进行划分,得到划分结果和对应的通知顺序信息,并将更新后的系统拓扑信息根据划分结果和对应的通知顺序信息,分批次广播给业务节点集群内各业务节点以及新增业务节点,以指示业务节点集群内各业务节点及新增业务节点更新系统拓扑信息。
119.在实施中,中心节点按照预设的业务节点数目划分机制(即预设的划分比例)对业务节点集群中的业务节点进行划分,得到划分结果和对应的通知顺序信息,并将更新后的系统拓扑信息根据划分结果和对应的通知顺序信息,分批次广播给业务节点集群内各业务节点以及新增业务节点,以指示原业务节点集群内各业务节点以及新增业务节点更新系统拓扑信息。
120.本实施例中,中心节点感知新增业务节点的续约请求,进而更新系统节点拓扑信息,并通过多次批量(即分批次)的形式将更新后的系统拓扑信息发送至业务节点集群中的业务节点,多次批量发送系统节点拓扑信息减轻了中心节点的处理负担,避免中心节点网络风暴。
121.在一个实施例中,如图6所示,在步骤503之后,该方法还包括:
122.步骤601,更新业务节点集群的一致性哈希环,将新增业务节点加入一致性哈希环的静默区。
123.在实施中,中心节点在将新增业务节点添加至系统拓扑信息后,进一步更新业务节点集群的一致性哈希环,即将新增业务节点加入一致性哈希的静默区。
124.步骤602,接收客户端发送的第三业务处理请求,根据一致性哈希算法计算第三业务处理请求对应的处理节点标识,并根据处理节点标识将第三业务处理请求发送至对应的处理节点进行处理。
125.在实施中,中心节点接收客户端发送的第三业务处理请求(http请求),并根据一致性哈希算法计算第三业务处理请求对应的处理节点标识(处理节点id),并根据处理节点标识将第三业务处理请求发送至对应的处理节点进行处理。
126.步骤603,若节点标识为新增业务节点,则指示新增业务节点返回处理失败信息。
127.在实施中,若处理节点为新增业务节点,由于新增业务节点还处在哈希环的静默区需要睡眠一个静默期,因此中心节点指示新增业务节点返回处理失败信息,其中,该处理失败信息可以为特定错误码。
128.步骤604,等待一个静默期直至新增业务节点为正常运行状态,接收客户端发送的第四业务处理请求,以指示新增业务节点处理第四业务处理请求,并向客户端返回业务处理成功消息。
129.在实施中,中心节点等待一个静默期直至新增业务节点为续约成功后的正常运行状态(也称为正常处理状态),中心节点再次接收客户端发送的第四业务处理请求时,则可以指示新增业务节点处理第四业务处理请求,并向该客户端返回处理成功消息,该处理成功消息可以直接为对应业务处理请求的处理结果。
130.本实施例中,中心节点对于新增业务节点先睡眠一个静默期,再实现新增业务节点的处理功能,不影响其他业务节点的运行,在分布式系统中灵活添加新的业务节点,提高
分布式系统的节点拓扑维护灵活性。
131.在一个实施例中,如图7所示,提供了一种系统拓扑结构维护方法,该方法应用于图1中的业务节点102为例进行说明,包括:
132.步骤701,在预设的随机值时间间隔机制所产生的时间点,向中心节点发送续约请求,续约请求中携带有业务节点自身节点标识信息;随机值时间间隔小于预设时间阈值。
133.在实施中,在分布式系统中包含多个业务节点,每个业务节点均以预设的随机值时间间隔作为续约周期向中心节点发送续约请求,其中,该续约请求中仅携带有业务节点自身节点标识信息,例如,该节点的节点序列号信息。另外,在预设的时间范围内可以发送续约请求的业务节点表征为正常处理业务的业务节点。
134.具体地,虽然续约周期采用随机值形式确定,但是针对每一业务节点的续约周期时间值需要满足小于预设的时间阈值,例如,在1

7秒内的随机值时间间隔,因此虽然是随机值的续约周期,依旧确保每一条续约请求的租约时效性,即在超过预设的时间阈值后,即可判定该业务节点续约失败,该业务节点为故障业务节点需要被提出业务节点集群。
135.步骤702,接收中心节点发送的系统拓扑信息,根据系统拓扑信息更新本地拓扑信息。
136.在实施中,业务节点接收中心节点发送的系统拓扑信息,根据系统拓扑信息更新本地拓扑信息。
137.本实施例中,业务节点集群中的业务节点在随机值时间间隔机制下所产生的时间点,向中心节点发送续约请求,避免了大量业务节点同时向中心节点发送续约请求,引发中心节点网络风暴的情况,提高了该分布式系统的稳定性。
138.在其中一个实施例中,如图8所示,步骤702的具体处理过程如下所示:
139.步骤801,接收中心节点发送的系统拓扑信息,将系统拓扑信息与业务节点本地拓扑信息进行比对。
140.在实施中,业务节点接收中心节点发送的系统拓扑信息,将系统拓扑信息与业务节点本地拓扑信息进行比对。
141.步骤802,若系统拓扑信息与业务节点本地拓扑信息不一致,则根据系统拓扑信息更新本地拓扑信息。
142.在实施中,若业务节点接收到的系统节点拓扑信息与业务节点本地存储的节点拓扑信息不一致,则按照接收到的系统拓扑信息更新业务节点本地拓扑信息。
143.本实施例中,通过在业务节点内部进行自身业务节点拓扑信息更新,避免了均通过中心节点内部对各业务节点是否更新进行判断,减少中心节点的处理压力,避免了中心节点出现网络风暴的情况。
144.应该理解的是,虽然图2

8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2

8中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
145.在一个实施例中,如图9所示,提供了一种分布式系统新加入业务节点的示例,具
体过程为:
146.新加入的业务节点向中心节点发送续约请求;中心节点将新加入的节点的节点标识信息加入系统节点拓扑信息中,同时,中心节点接收原业务节点集群中的各业务节点的续约请求,完成系统节点拓扑信息更新。然后,中心节点分别向新加入的业务节点和原业务节点集群中的各业务节点发送续约成功请求并返回更新后的系统节点拓扑信息。中心节点指示新加入的业务节点加入到业务节点集群对应的一致性哈希环的静默区中,即新加入的业务节点在第一次续约成功后睡眠一个静默期。当应用程序向中心节点发送http请求时,如果该http请求的目标处理节点对应的处理节点为新加入的业务节点,而此时新加入的业务节点处于静默期,则中心节点在将该http请求转发至新加入的业务节点后,新加入的业务节点会返回一个特定错误码给应用程序,以提示该新加入的业务节点目前还处于静默期无法完成业务处理,当静默期结束,新加入的业务节点为续约成功的正常运行状态,开启业务处理模式。若此时接收到应用程序的http请求,该http请求对应的目标处理节点为新加入的业务节点,则此时中心节点将http请求转发给新加入的业务节点,并通过新加入的业务节点进行处理,然后向应用程序返回对应的处理结果。
147.在一个实施例中,如图10所示,提供了一种分布式系统删除故障业务节点的示例,具体过程为:
148.在网络状态、节点状态和服务进程均正常的情况下,若在预设的时间阈值内未接收到某一业务节点的续约请求,该业务节点的前一续约请求的租约时间已过期,则中心节点判定该业务节点为故障业务节点。中心节点将故障业务节点从节点拓扑信息中删除,同时,中心节点接收业务节点集群中其他业务节点的续租请求,完成系统节点拓扑信息更新。然后,中心节点向业务节点集群中除故障业务节点之外的其他业务节点发送续约成功消息以及更新后的系统节点拓扑信息,业务节点集群根据一致性哈希算法将故障业务节点对应的哈希区间重计算转移至另一个业务节点(称为目标业务节点)上,故障业务节点对应的加入哈希环的静默区,睡眠一个静默期。此时,若应用程序向中心节点发送http请求,中心节点根据一致性哈希算法的重计算将该http请求转发至目标业务节点上,目标业务节点判别出该http请求原始处理节点应为故障业务处理节点,则先返回特定错误吗,等待一个静默期,当故障业务节点从哈希环的静默区删除后,若中心业务节点再次接收到应用程序发送的http请求(该http请求对应区间为原故障业务节点的原映射区间),该http请求被转发至目标业务节点,则此时目标业务节点可以处理该业务请求,并向应用程序返回对应的处理结果。
149.在一个实施例中,如图11所示,提供了一种系统拓扑结构维护装置1100,包括:接收模块1110、生成模块1120和发送模块1130,其中:
150.接收模块1110,用于接收每一业务节点的续约请求,续约请求由业务节点根据预设的随机值时间间隔发送;
151.生成模块1120,用于响应于每一续约请求,根据续约请求中的节点标识信息生成系统拓扑信息;
152.发送模块1130,用于在等待至少两个连续的续约周期后,确定系统拓扑重建完毕,并将系统拓扑信息发送至每一续约的业务节点上,以指示业务节点进行系统拓扑信息更新。
153.在一个实施例中,该装置1100还包括:
154.记录模块,用于根据本地开机时钟信息,记录业务节点的续约请求的接收时间以及续约请求对应的业务节点的节点标识。
155.在一个实施例中,该装置1100还包括:
156.确定模块,用于在预设的时间范围阈值内未接收到目标业务节点的续约请求,确定目标业务节点故障;时间阈值范围大于或者等于目标业务节点对应的续约周期;
157.更新模块,用于在系统拓扑信息中删除目标业务节点,得到更新后的系统拓扑信息;
158.发送模块,用于按照预设的业务节点数目划分机制对业务节点集群中的业务节点进行划分,得到划分结果和对应的通知顺序信息,并将更新后的系统拓扑信息根据划分结果和对应的顺序信息,分批次广播给业务节点集群内除目标业务节点之外的其他业务节点,以指示其他业务节点更新系统拓扑信息。
159.在其中一个实施例中,该装置1100还包括:
160.更新模块,用于更新业务节点集群的一致性哈希环,将故障业务节点对应的哈希环区间转移至业务节点集群中除故障业务节点之外的目标业务节点上,并将故障业务节点加入到一致性哈希环的静默区中;
161.收发模块,用于接收客户端发送的第一业务处理请求,并将第一业务处理请求发送至对应的处理节点进行处理;
162.重计算模块,用于若处理节点为故障业务节点,则根据一致性哈希算法重新计算第一业务处理请求对应的处理节点的节点标识,并根据计算出的节点标识将第一业务处理请求转发至更新后的目标业务节点,以指示目标业务节点返回处理失败信息;
163.删除模块,用于等待一个静默期,将故障业务节点从一致性哈希环的静默区中删除;静默期为故障业务节点在一致性哈希环的静默区的休眠时间;
164.接收模块,用于接收客户端发送的第二业务处理请求,以指示目标业务节点处理第二业务处理请求,并向客户端返回处理成功消息。
165.在一个实施例中,该装置1100还包括:
166.接收模块,用于接收新增业务节点发送的新增续约请求;
167.生成模块,用于响应于新增续约请求,根据新增续约请求更新系统拓扑信息;
168.发送模块,用于按照预设的业务节点数目划分机制对业务节点集群中的业务节点进行划分,得到划分结果和对应的通知顺序信息,并将更新后的系统拓扑信息根据划分结果和对应的顺序信息,分批次广播给业务节点集群内各业务节点以及新增业务节点,以指示业务节点集群内各业务节点及新增业务节点更新系统拓扑信息。
169.在一个实施例中,该装置1100还包括:
170.更新模块,用于更新业务节点集群的一致性哈希环,将新增业务节点加入一致性哈希环的静默区;
171.第一收发模块,用于接收客户端发送的第三业务处理请求,根据一致性哈希算法计算第三业务处理请求对应的处理节点标识,并根据处理节点标识将第三业务处理请求发送至对应的处理节点进行处理;
172.判断模块,用于若处理节点为新增业务节点,则指示新增业务节点返回处理失败
信息;
173.第二收发模块,用于等待一个静默期直至新增业务节点为正常运行状态,接收客户端发送的第四业务处理请求,以指示新增业务节点处理第四业务处理请求,并向客户端返回业务处理成功消息。
174.在一个实施例中,如图12所示,提供了一种系统拓扑结构维护装置1200,该装置1200包括:
175.发送模块1210,用于在预设的随机值时间间隔机制所产生的时间点,向中心节点发送续约请求,续约请求中携带有业务节点自身节点标识信息;随机值时间间隔小于预设时间阈值;
176.接收模块1220,用于接收中心节点发送的系统拓扑信息,根据系统拓扑信息更新本地拓扑信息。
177.在一个实施例中,接收模块1220具体用于接收中心节点发送的系统拓扑信息,将系统拓扑信息与业务节点本地拓扑信息进行比对;
178.若系统拓扑信息与业务节点本地拓扑信息不一致,则根据系统拓扑信息更新本地拓扑信息。
179.关于系统拓扑结构维护装置的具体限定可以参见上文中对于系统拓扑结构维护方法的限定,在此不再赘述。上述系统拓扑结构维护装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
180.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图13所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储系统节点拓扑数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种系统拓扑结构维护方法。
181.本领域技术人员可以理解,图13中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
182.在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
183.接收每一业务节点的续约请求,续约请求由业务节点根据预设的随机值时间间隔发送;
184.响应于每一续约请求,根据续约请求中的节点标识信息生成系统拓扑信息;
185.在等待至少两个连续的续约周期后,确定系统拓扑重建完毕,并将系统拓扑信息发送至每一续约的业务节点上,以指示业务节点进行系统拓扑信息更新。
186.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
187.根据本地开机时钟信息,记录业务节点的续约请求的接收时间以及续约请求对应
的业务节点的节点标识。
188.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
189.在预设的时间范围阈值内未接收到目标业务节点的续约请求,确定目标业务节点故障;时间阈值范围大于或者等于目标业务节点对应的续约周期;
190.在系统拓扑信息中删除目标业务节点,得到更新后的系统拓扑信息;
191.按照预设的业务节点数目划分机制对业务节点集群中的业务节点进行划分,得到划分结果和对应的通知顺序信息,并将更新后的系统拓扑信息根据划分结果和对应的顺序信息,分批次广播给业务节点集群内除目标业务节点之外的其他业务节点,以指示其他业务节点更新系统拓扑信息。
192.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
193.更新业务节点集群的一致性哈希环,将故障业务节点对应的哈希环区间转移至业务节点集群中除故障业务节点之外的目标业务节点上,并将故障业务节点加入到一致性哈希环的静默区中;
194.接收客户端发送的第一业务处理请求,并将第一业务处理请求发送至对应的处理节点进行处理;
195.若处理节点为故障业务节点,则根据一致性哈希算法重新计算第一业务处理请求对应的处理节点的节点标识,并根据计算出的节点标识将第一业务处理请求转发至更新后的目标业务节点,以指示目标业务节点返回处理失败信息;
196.等待一个静默期,将故障业务节点从一致性哈希环的静默区中删除;静默期为故障业务节点在一致性哈希环的静默区的休眠时间;
197.接收客户端发送的第二业务处理请求,以指示目标业务节点处理第二业务处理请求,并向客户端返回处理成功消息。
198.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
199.接收新增业务节点发送的新增续约请求;
200.响应于新增续约请求,根据新增续约请求更新系统拓扑信息;
201.按照预设的业务节点数目划分机制对业务节点集群中的业务节点进行划分,得到划分结果和对应的通知顺序信息,并将更新后的系统拓扑信息根据划分结果和对应的顺序信息,分批次广播给业务节点集群内各业务节点以及新增业务节点,以指示业务节点集群内各业务节点及新增业务节点更新系统拓扑信息。
202.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
203.更新业务节点集群的一致性哈希环,将新增业务节点加入一致性哈希环的静默区;
204.接收客户端发送的第三业务处理请求,根据一致性哈希算法计算第三业务处理请求对应的处理节点标识,并根据处理节点标识将第三业务处理请求发送至对应的处理节点进行处理;
205.若处理节点为新增业务节点,则指示新增业务节点返回处理失败信息;
206.等待一个静默期直至新增业务节点为正常运行状态,接收客户端发送的第四业务处理请求,以指示新增业务节点处理第四业务处理请求,并向客户端返回业务处理成功消息。
207.在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
208.在预设的随机值时间间隔机制所产生的时间点,向中心节点发送续约请求,续约请求中携带有业务节点自身节点标识信息;随机值时间间隔小于预设时间阈值;
209.接收中心节点发送的系统拓扑信息,根据系统拓扑信息更新本地拓扑信息。
210.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
211.接收中心节点发送的系统拓扑信息,将系统拓扑信息与业务节点本地拓扑信息进行比对;
212.若系统拓扑信息与业务节点本地拓扑信息不一致,则根据系统拓扑信息更新本地拓扑信息。
213.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
214.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read

only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
215.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
216.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1