一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

服务器分组方法、设备、存储介质和服务器集群与流程

2021-09-18 01:05:00 来源:中国专利 TAG:服务器 集群 分组 计算机 方法


1.本发明涉及计算机技术领域,尤其涉及一种服务器分组方法、设备、存储介质和服务器集群。


背景技术:

2.目前大型3d多人在线网络游戏等类型的游戏均可以为用户提供跨服活动,以使注册在同一分组内不同服务器上的用户之间可以实现交互。由于服务器之间的分组关系往往较为固定,因此,能够实现交互的用户组合也较为固定。
3.为了提高用户组合的多样性,可以对服务器之间的分组关系进行不断调整。但在现有技术中,服务器之间分组关系的调整是通过在服务器停止服务期间修改配置文件来实现的,导致分组关系的调整会影响游戏服务的正常提供。
4.因此,如何在服务器不停机的情况下调整服务器的分组关系就成为一个亟待解决的问题。


技术实现要素:

5.有鉴于此,本发明实施例提供一种服务器集群,用以保证在服务器不停机的状态下,调整服务器集群中各服务器之间分组关系。
6.第一方面,本发明实施例提供一种服务器分组方法,应用于服务器集群中的目标中心服务器,其中,所述目标中心服务器为所述服务器集群中的任一中心服务器,目标分区服务器为所述服务器集群中的任一分区服务器;
7.所述方法包括:
8.接收所述目标分区服务器根据第一分组关系发送的连接请求,其中,所述第一分组关系是所述目标分区服务器根据分组算法得到的服务器之间的分组关系;
9.获取根据所述分组算法确定的服务器之间的第二分组关系;
10.若根据所述第二分组关系确定响应所述连接请求,则由所述目标中心服务器为所述分区服务器对应的用户提供跨服活动。
11.第二方面,本发明实施例提供一种电子设备,包括处理器和存储器,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现上述第一方面中的服务器分组方法。该电子设备还可以包括通信接口,用于与其他设备或通信网络通信。
12.第三方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器至少可以实现如第一方面所述的服务器分组方法。
13.第四方面本发明实施例提供一种服务器集群,包括:多个分区服务器和多个中心服务器,其中,目标分区服务器为所述多个分区服务器中的任一个,目标中心服务器为所述多个中心服务器中的任一个;
14.所述目标分区服务器,用于根据分组算法确定服务器之间的第一分组关系;根据所述第一分组关系发送连接请求至所述目标中心服务器;
15.所述目标中心服务器,用于根据所述分组算法确定服务器之间的第二分组关系;若根据所述第二分组关系确定响应所述连接请求,则由所述目标中心服务器为所述分区服务器对应的用户提供跨服活动。
16.服务器集群可以包括多个中心服务器和分区服务器,其中,多个中心服务器中的任一个可以为目标中心服务器,多个分区服务器中的任一个可以为目标分区服务器。基于上述的服务器集群,本实施例提供的服务器分组方法具体可以包括:
17.目标分区服务器可以利用自身配置的分组算法得到集群中各服务器之间的第一分组关系,同时,目标中心服务器也可以利用分组算法得到服务器之间的第二分组关系。之后,目标分区服务器可以根据第一分组关系向目标中心服务器发送连接请求。目标中心服务器接收此连接请求,若根据第二分组关系确定响应连接请求,表明目标分区服务器和目标中心服务器处于同一分组内,则由目标中心服务器为分区服务器对应的用户提供跨服活动。
18.上述过程中,集群中的各服务器可以自动执行自身配置的分组算法,以在服务器不停机的状态下对集群中各服务器进行分组,同时也可以在不停机的状态下调整服务器之间的分组关系,从而建立服务器之间的连接关系。另外,与通过修改并读取描述分组关系的配置文件调整服务器分组关系的方式相比,借助分组算法也能够使服务器之间分组关系的生成和调整过程更加便捷。
附图说明
19.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
20.图1为本发明实施例提供的一种服务器分组方法的流程图;
21.图2为与图1所示实施例提供的服务器分组方法对应的一种服务器集群的结构示意图;
22.图3为本实施例提供的分组算法的流程图;
23.图4为本发明实施例提供的另一种服务器分组方法的流程图;
24.图5为与图4所示实施例提供的服务器分组方法对应的另一种服务器集群的结构示意图;
25.图6a本发明实施例提供的又一种服务器集群的结构示意图;
26.图6b本发明实施例提供的又一种服务器集群的结构示意图;
27.图7为本发明实施例提供的又一种服务器分组方法的流程图;
28.图8为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
29.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例
中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
30.在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
31.应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
32.取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”或“响应于识别”。类似地,取决于语境,短语“如果确定”或“如果识别(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当识别(陈述的条件或事件)时”或“响应于识别(陈述的条件或事件)”。
33.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
34.下面结合附图对本发明的一些实施方式作详细说明。在各实施例之间不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
35.图1为本发明实施例提供的一种服务器分组方法的流程图。该分组方法用于实现对服务器集群中的多个中心服务器和多个分区服务器进行分组,以通过分组为用户提供跨服活动。
36.具体地,服务器集群中的各中心服务器和各分区服务器之间建立有物理连接,通过分组也即是建立起服务器集群中各中心服务器与分区服务器之间一对多的关系,也即是每个分组包括一个中心服务器和至少一个分区服务器。并且处于同一分组的中心服务器和各个分区服务器之间均建立有逻辑连接,借助此逻辑连接可以使中心服务器为与同一分组中各分区服务器对应的用户提供跨服活动。因此,本实施例以及下述各实施例中提及的建立或断开服务器之间的连接关系实际上是服务器之间的逻辑连接。
37.其中,用户可以借助终端设备在服务器集群中的一分区服务器中注册帐号,以成为该分区服务器对应的用户,同时,此用户的用户数据也会保存在该用户对应的分区服务器中。
38.正如图2所示的服务器集群,中心服务器1以及分区服务器1~分区服务器3处于同一分组1,则通过中心服务器1和分区服务器1~分区服务器3之间的连接关系,能够使中心服务器1为分区服务器1~分区服务器3对应的用户提供跨服活动。其中,参与跨服活动可以使分区服务器1~分区服务器3各自对应的用户之间实现不同形式的交互。可选地,用户之间的交互可以包括组队游戏、语音通话、互加好友等等。类似的,中心服务器2和分区服务器
4~分区服务器6同处于分组2。
39.在上述描述的基础上,本发明实施例提供的该服务器分组方法可以由服务器集群包含的多个中心服务器中的任一中心服务器,即目标中心服务器来执行。如图1所示,该方法包括如下步骤:
40.s101,接收目标分区服务器根据第一分组关系发送的连接请求,其中,第一分组关系是目标分区服务器根据分组算法得到的服务器之间的分组关系。
41.s102,获取根据分组算法确定的服务器之间的第二分组关系。
42.s103,若根据第二分组关系确定响应连接请求,则由目标中心服务器为分区服务器对应的用户提供跨服活动。
43.目标分区服务器可以根据自身预先配置的分组算法,对服务器集群中的服务器进行分组,以得到第一分组关系。类似的,目标中心服务器也可以根据自身预先配置该分组算法,并使用该算法对服务器进行分组,以得到第二分组关系。
44.假设在某一时刻,用户可以借助终端设备向其对应的目标分区服务器发送跨服活动的参与申请。目标分区服务器接收此申请,并根据第一分组关系确定与目标分区服务器处于同一分组的目标中心服务器,并向目标中心服务器发送连接请求。由于目标中心服务器可以通过自身与分区服务器之间的逻辑连接来为用户提供跨服活动,因此,目标分区服务器发送的连接请求实际上为逻辑连接请求。
45.目标中心服务器在接收并响应目标分区服务器发送的连接请求后,先建立自身与目标分区服务器之间的逻辑连接。然后,目标中心服务器再根据得到的第二分组关系确定此连接请求是否有效,也即是根据第二分组关系判断是否继续响应此连接请求。可选地,若目标中心服务器根据第二分组关系确定出自身与目标分区服务器处于同一分组,则目标中心服务器继续响应连接请求,继续保持自身与目标分区服务器之间的逻辑连接关系,由目标中心服务器为与目标分区服务器绑的用户提供跨服活动。
46.在提供跨服活动的过程中,为了使分区服务器能够在不同时刻与不同的中心服务器处于同一组,使用户能够与更多的用户实现交互,服务器集群中各服务器之间的分组关系也可以进行调整。一种常见的方式,各服务器之间的分组关系通常被写入中心服务器的配置文件中,此时,可以先停机对配置文件进行修改,之后再重启中心服务器以实现分组关系的调整。并且在中心服务器重启后,还可以将调整后的分组关系同步至服务器集群中的各个分区服务器,以保证跨服活动的正常提供。
47.而本实施例提供的方法中,由于分组算法预先都部署于服务器集群中的各服务器中,因此,中心服务器和分区服务器均可以通过执行分组算法,以在不停机的状态下实现分组关系的调整。并且中心服务器也无需向分区服务器同步调整后的分组关系,使得分组关系的调整过程也更为便捷。
48.本实施例中,目标分区服务器可以利用分组算法得到集群中各服务器之间的第一分组关系,同时,目标中心服务器也可以利用分组算法得到服务器之间的第二分组关系。之后,根据第一分组关系,目标分区服务器可以向目标中心服务器发送连接请求。目标中心服务器接收此连接请求后,若根据第二分组关系确定响应此连接请求,表明目标分区服务器和目标中心服务器处于同一分组内,则由目标中心服务器为分区服务器对应的用户提供跨服活动。
49.可见,通过执行自身配置的分组算法,服务器集群中的各服务器也可以在不停机的状态下对服务器进行分组,以及调整分组关系。同时,借助分组算法也能够使分组关系的调整更加便捷。
50.对于各服务器中配置的分组算法,该算法的算法参数具体可以包括集群中各分区服务器的活跃度以及各中心服务器的承载能力极值。其中,分区服务器的活跃度可以预设值,用以反映与分区服务器绑定的用户的在线人数、付费比例,用户等级等等。中心服务器的承载能力极值也可以是预设值,承载能力极值具体包括承载能力上限和承载能力下限。
51.则承接图1所示的实施例,如图3所示,以目标中心服务器为例,分组算法的执行过程即目标中心服务器得到第二分组关系的过程可以包括以下步骤:
52.s201,根据分区服务器队列中的各分区服务器的排序,建立分区服务器队列中的至少一个分区服务器与目标中心服务器之间的第二分组关系,其中,至少一个分区服务器各自的活跃度之和大于或等于目标中心服务器的承载能力下限。
53.目标中心服务器可以得到服务器集群中各分区服务器的排序结果,即分区服务器队列,以及服务器集群中各中心服务器的排序结果,即中心服务器队列。可选地,上述实施例中的目标中心服务器可以位于中心服务器队列的顶部。
54.之后,目标中心服务器可以先从分区服务器队列中选择至少一个分区服务器,并建立自身与选中的至少一个分区服务器之间的第二分组关系。可选地,可以从分区服务器队列顶部开始选择上述的至少一个分区服务器,并且选中的至少一个分区服务器各自的活跃度之和大于或等于目标中心服务器的承载能力下限。
55.经过上述过程也即是实现了针对目标中心服务器的第一轮分组。在这之后,还可以按照其他中心服务器在中心服务器队列中的排序,依次对其他中心服务器进行第一轮分组。
56.s202,在多个中心服务器分别与分区服务器队列中的至少一个分区服务器建立第二分组关系后,若分区服务器队列中存在未与任一中心服务器建立第二分组关系的第一剩余分区服务器,则确定与目标中心服务器建立第二分组关系的至少一个分区服务器各自的活跃度之和。
57.s203,确定活跃度之和与目标中心服务器的承载能力上限之间的差值。
58.s204,根据差值,建立目标中心服务器与第二剩余分区服务器之间的第二分组关系,第二剩余分区服务器包含于第一剩余分区服务器,第二剩余分区服务器各自的活跃度之和小于或等于差值。
59.在每个中心服务器都完成第一轮分组后,分区服务器中还有可能存在未分配出去的分区服务器,即第一剩余分区服务器。此时,位于中心服务器队列顶部的目标中心服务器可以开始第二轮分组:
60.目标中心服务器计算在自身第一轮分组时选择的至少一个分区服务器各自的活跃度之和。再计算活跃度之和与目标中心服务器的承载能力上限之间的差值。再根据此差值,在第一剩余分区服务器中选择第二剩余分区服务器,以建立目标中心服务器与第二剩余分区服务器之间的第二分组关系。其中,选中的第二剩余分区服务器各自的活跃度之和小于或等于上述差值。
61.在此之后,对于中心服务器队列中的其他中心服务器,同样可以按照上述方式完
成第二轮分组。
62.s205,若第一剩余分区服务器中存在未与任一中心服务器建立第二分组关系的第三剩余分区服务器、且每个分组中包含的分区服务器的活跃度之和均大于或等于分组包含的中心服务器的承载能力上限,则建立服务器集群中的预设中心服务器与第三剩余分区服务器之间的第二分组关系。
63.在各服务器都经过上述两轮分组后,分区服务器队列中还有可能存在未与任一中心服务器建立第二分组关系的第三剩余分区服务器。此时,若在完成两轮分组后,每个分组中包含的分区服务器的活跃度之和都大于或等于此分组包含的中心服务器的承载能力上限,也即是每个分组中包含的中心服务器的承载能力都较为饱和,此时,可以直接建立第三剩余分区服务器与预设中心服务器之间的第二分组关系,也即是将第三剩余分服务器划分到预设中心服务器所处的分组,也即是实现了第三轮分组。
64.其中,可选地,预设服务器可以是服务器集群中的固定的一个中心服务器,并且此预设服务器的设定可以预先写入分组算法中,因此,服务器集群中的每个服务器在执行分组算法时都可以知道若存在第三剩余分区服务器,则建立第三剩余分区服务器与预设中心服务器之间的第二分组关系。
65.可选地,预设服务器也可以与分组周期对应,比如处于分组周期1时,预设服务器可以是编号为1的中心服务器,依次类推。并且预设服务器与分组周期之间的对应关系也可以写入分组算法中,以使服务器集群中的每个服务器在分组周期内都能建立第三剩余服务器与该分组周期对应的预设服务器之间的第二分组关系。
66.需要说明的有,服务器集群中的各个中心服务器都可以按照图3所示实施例的方式得到各自的第二分组关系,同样的,服务器集群中的各个分区服务器也可以按照上述方式能得到各自的第一分组关系。
67.并且通过执行图3所示的分组算法,可以保证每个分区服务器都与一个中心服务器建立分组关系,并且每个分组中包含的分区服务器的数量都较为平均,活跃度较高的分区服务器也会平均分配到不同的分组中。
68.需要说明的还有,对于服务器集群中的中心服务器,其也具有活跃度指标,每当建立该中心服务器与一个分区服务器的第二分组关系,将该分区服务器的活跃度累加到该中心服务器的活跃度上,也即是中心服务器的活跃度为与其建立有第二分组关系的所有分区服务器的活跃度之和。
69.图3所示的实施例中已经公开,中心服务器队列以及分区服务器队列会参与分组算法的执行过程中。则可选地,可以按照服务器编号对中心服务器进行排序,以得到中心服务器队列。可选地,可以先按服务器照编号对分区服务器进行排序,之后再根据生成的随机数序列采用相同的变序类算法,例如洗牌算法(random_shuffle算法)将排序结果打散,以得到分区服务器队列。
70.其中,服务器集群中的各服务器可以按照分组周期定期执行分组算法,则分组关系的有效时长即为分组周期。并且每次对分区服务器进行排序时使用的随机数序列与分组算法的执行时间所属的分组周期对应。可选地,随机数序列可以根据分组周期包含的起始时间作为时间戳生成随机数序列。其中,变序类算法使用该时间戳作为随机种子生成随机数,并根据该随机数对分区服务器的排序结果进行打散,得到上述分区服务器队列。
71.举例来说,服务器集群中包括分区服务器1~分区服务器7,可以先按照服务器编号对分区服务器进行排序,得到排序结果为:分区服务器1~分区服务器7。同时,假设目标中心服务器在时间t1执行分组算法,t1所属分组周期的下一个分组周期的起始时间为t2,并且此起始时间t2与时间t1之间的时间间隔不小于预设时长,则可以在下一个分组周期内的时间为t2时,执行分组算法,并将该起始时间t2转换为所属分组周期对应的时间戳,将该时间戳作为变序列算法的随机种子,通过该变序类算法生成随机数序列并依据该随机数序列对分区服务器的初始排序结果进行打散,得到打散后的服务器队列。
72.需要说明的是,在一个分组周期内,例如时间t2所属的分组周期内,可以在该分组周期内的多个时刻执行分组算法,由于在执行分组算法时,多个时刻均按照时区被转换成所属分组周期对应的统一时间戳,因此在多个时刻执行分组算法得到的分组关系是一致的。
73.可选地,也可以根据该起始时间使用随机数生成算法生成随机数序列,并依据该随机数序列中的数字排序对分区服务器进行排序,例如:随机数序列为1325467,此时可以利用此随机数序列将上述的排序结果打乱,得到以下的分区服务器队列:分区服务器1、分区服务器3、分区服务器2、分区服务器5、分区服务器4、分区服务器6、分区服务器7。
74.根据上述描述可知,在不同的分组周期中,可以使用不同的随机数序列将排序结果打散,也即是在不同的分组周期执行分组算法时可以得到不同的分区服务器队列,最终也能得到不同的分组关系,以提高分组关系的灵活性,保证用户在跨服活动中的交互体验。
75.需要说明的有,在实际中,由于中心服务器和分区服务器各自的时钟往往存在偏差,因此,若直接使用分组算法的执行时间生成随机数序列,则会导致集群中各分区服务器各自得到的分区服务器队列不同,导致服务器各自得到的分组关系也不同,并最终导致服务器之间无法建立连接,跨服活动也无法正常提供。
76.但由于服务器之间的时钟偏差通常较小,使得服务器的算法执行时间通常对应于同一分组周期,因此,上述描述中提到的根据执行时间所属的分组周期确定出下一分组周期的起始时间,并将该起始时间转换为时间戳进而确定随机数序列的方式,可以保证两服务器得到相同的随机数序列,从而避免因服务器之间的时钟偏差而导致的连接建立失败、跨服活动无法提供的情况。
77.下面可以举例说明分组算法的具体实现过程:
78.假设服务器集群中包括中心服务器1~中心服务器3,以及分区服务器1~分区服务器7。其中,中心服务器1~中心服务器3的承载能力上限均为2,承载能力下限均为0.8。分区服务器1的活跃度为1.5,分区服务器2的活跃度为0.5,分区服务器3的活跃度为1,分区服务器4的活跃度为0.7,分区服务器5的活跃度为0.8,分区服务器6的活跃度为0.7,分区服务器7的活跃度为0.3。
79.当t1时刻执行分组算法,该时刻所属的分组周期对应的随机数序列为1325467,则根据随机数序列得到打乱后的分区服务器队列:分区服务器1、分区服务器3、分区服务器2、分区服务器5、分区服务器4、分区服务器6、分区服务器7。同时中心服务器队列可以为:中心服务器1、中心服务器2、中心服务器3。对于中心服务器1可以得到上述的两个服务器队列,并且预设时间段内执行分组算法的各服务器均可以得到上述的两个队列。
80.基于上述队列,可以对位于中心服务器队列顶部的中心服务器1进行第一轮分组:
81.根据中心服务器1的承载能力下限,可以从分区服务器队列中先取出分区服务器1,此时,中心服务器1可以建立自身与分区服务器1之间的第二分组关系。由于分区服务器1的活跃度为1.5,已经超出中心服务器1的承载能力下限0.8,因此,继续对中心服务器队列中的中心服务器2进行第一轮分组:建立分区服务器队列中的分区服务器3与中心服务器2之间的第二分组关系。由于分区服务器2的活跃度为1,已经超出中心服务器2的承载能力下限,因此,继续对中心服务器队列中的中心服务器3进行第一轮分组:建立分区服务器2与中心服务器3之间的第二分组关系。由于分区服务器2的活跃度为0.5,小于中心服务器3的承载能力下限0.8,因此,再取出分区服务器5,建立分区服务器5与中心服务器3之间的第二分组关系。此时,两个分区服务器的活跃度之和为1.3,已经大于承载能力下限0.8,则完成对全部中心服务器的第一轮分组。
82.经过一轮分组后,分区服务器队列中的分区服务器4、分区服务器6和分区服务器7(即上述实施例中的第一剩余分区服务器)还没有建立分组关系。并且中心服务器1~中心服务器3的剩余承载能力分别为0.5,1和0.7,则可以建立中心服务器2和建立分区服务器4之间的第二分组关系,建立中心服务器3与分区服务器6之间的第二分组关系。其中,分区服务器4和分区服务器6为上述实施例中的第二剩余分区服务器。经过上述过程也即是完成了对三个中心服务器的第二轮分组。
83.经过两轮分组后,分区服务器队列中的分区服务器7(上述实施例中的第三剩余分区服务器)还没有与中心服务器建立分组关系,并且每个中心服务器的承载能力也都较为饱和。此时,可以直接将分区服务器7与服务器集群中的中心服务器1划分至同一分组,也即是实现了第三轮分组。其中,需要说明的有,中心服务器1可以认为是服务器集群中的预设服务器,服务器集群中的每个服务器都能够知晓在多轮分组后,若每个中心服务器的承载能力都较为饱和,则可以直接建立分区服务器7与中心服务器1之间的第二分组关系,以实现了第三轮分组。
84.执行上述分组算法后可以得到如下分组关系:中心服务器1与分区服务器1、分区服务器7处于同一分组;中心服务器2与分区服务器3、分区服务器4处于同一分组;中心服务器3与分区服务器2、分区服务器5、分区服务器6处于同一分组。
85.图4为本发明实施例提供的另一种服务器分组方法的流程图。本实施例的执行主体为服务器集群中的任一中心服务器,即目标中心服务器。如图4所示,该方法包括如下步骤:
86.s301,接收目标分区服务器根据第一分组关系发送的连接请求,其中,第一分组关系是目标分区服务器根据分组算法得到的服务器之间的分组关系。
87.s302,获取根据分组算法确定的服务器之间的第二分组关系。
88.根据图1所示实施例可知,目标中心服务器在接收连接请求后,会响应此连接请求也即是建立自身与目标分区服务器之间的逻辑连接,从而为用户提供跨服活动。同时,目标中心服务器还可以根据第二分组关系进一步确定此逻辑连接的有效性,也即是根据第二分组关系确定是否继续响应目标分区服务器发送的连接请求,以确定是否继续为目标分区服务器对应的用户提供跨服活动。
89.上述步骤301~302的执行过程与前述实施例的相应步骤相似,可以参见如图1所示实施例中的相关描述,在此不再赘述。
90.s303,接收服务器集群中的管理服务器发送的服务器之间的第三分组关系。
91.s304,若第三分组关系与第二分组关系不同,则用第三分组关系替换第二分组关系。
92.可选地,如图5所示的服务器集群,其中除了多个分区服务器、多个中心服务器还可以包括管理服务器。管理服务器中也可以配置有分组算法,通过在不同的分组周期执行分组算法,管理服务器也能够得到在不同分组周期内服务器之间的第三分组关系。
93.上述描述中已经提到集群中各中心服务器之间可能存在时钟偏差,并且可以通过设置分组周期与随机数序列之间对应关系来弥补时钟偏差对跨服活动正常提供所产生的影响,使得各中心服务器和各分区服务器在同一分组周期内得到的都是相同分组关系。但当中心服务器和分区服务器之间的时钟偏差过大后,导致各服务器不处在同一个分组周期内,使得不同的服务器仍会得到不同的分组关系,并最终对跨服活动的正常提供造成影响。
94.为了避免时钟偏差对跨服活动正常提供的影响,管理服务器可以将自身得到第三分组关系及时同步至各中心服务器和各分区服务器中。若目标中心服务器中的第二分组关系与管理服务器的第三分组关系不同,则用第三分组关系替换第二分组关系。类似的,当第一分组关系与第三分组关系不同时,也利用可以第三分组关系进行替换,以保证各中心服务器以及各分区服务器在同一分组周期内都具有相同的分组关系。
95.s305,若根据第三分组关系确定响应连接请求,则由目标中心服务器为分区服务器对应的用户提供跨服活动。
96.在目标中心服务器为目标分区服务器提供跨服活动的过程中,当分组关系进行替换后,目标中心服务器还可以根据替换后得到的第三分组关系再一次确定目标分区服务器发送的连接请求的有效性,即确定是否对继续对目标分区服务器发送的连接请求进行响应。若目标中心服务器确定继续响应此连接请求,则继续维持自身与目标分区服务器之间的连接关系,并由目标中心服务器继续为用户提供跨服活动。
97.可选地,在实际中,中心服务器生成的第二分组关系还可以与管理服务器生成的第三分组关系进行多次比对,若中心服务器生成的第二分组关系与管理服务器生成的第三分组关系之间不相同的次数(即比对失败的次数)超过预设次数,表明中心服务器出现异常,则可以由管理服务器控制此中心服务器在预设时长内停止执行自身配置的分组算法,在此期间内该中心服务器只能被动地接收管理服务器发送的第三分组关系。类似的,对于出现异常的分区服务器,其也只能被动接收第三分组关系。
98.并且在进行多次比对并且比对失败次数未超过预设次数的一段时间内,仍可以继续由目标中心服务器为用户提供跨服活动,直至比对成功。此时则可以根据比对成功的分组关系重新确定为用户提供跨服活动的中心服务器。
99.本实施例中,利用管理服务器生成的第三分组关系来同步集群中其他服务器得到的分组关系,以保证在相同的分组周期内,各服务器都能使用相同的分组关系建立中心服务器与分区服务器之间的连接关系,使中心服务器能够正常为用户提供跨服活动。
100.另外,在实际应用中对于服务器的分组会存在一些特殊要求,比如多个特殊的分区服务器不能处于同一分组,又或者某个中心服务器发生故障。此时,基于图5所示的服务器集群,服务器集群的维护人员可以对管理服务器触发算法参数的修改操作。管理服务器响应于此修改操作,发送修改通知至集群中的各分区服务器和各中心服务器。此修改通知
用于指示修改后的算法参数。各分区服务器响应于此修改通知,根据修改后的算法参数,重新确定第一分组关系;中心服务器也响应于修改通知,根据修改后的算法参数,重新确定第二分组关系。其中,对算法参数的修改可以包括分区服务器的活跃度和/或中心服务器的承载能力极值的修改。
101.举例来说,通过调整算法参数中心服务器的承载能力极值,比如调高中心服务器1的承载能力上限,同时调低中心服务器2的承载能力上限,则此时,服务器集群中各服务器之间的分组关系的变化可以结合图6a理解。与图5相比,在图6a中,与中心服务器1处于同一分组的分区服务器的数量增多,与中心服务器2处于同一分组的分区服务器的数量减少。
102.又举例来说,通过调整算法参数中分区服务器的活跃度,可以使原本处于同一分组的分区服务器1和分区服务器2,处于不同的分组内。与图5相比,在图6b中,分区服务器1和边缘服务3被划分至不同的分组。
103.可选地,在实际中,集群中服务器的数量也可以发生变化,比如存在新增的中心服务器和/或分区服务器,此时,管理服务器可以将算法参数同步到新增的服务器中,以便新增的服务器执行分组算法,得到分组关系。
104.本实施例中,借助管理服务器能够对分组算法的分组参数进行修改。通过对算法参数中的承载能力极值的修改,能够调整处于同一分组中的分区服务器的数量,也即是实现分组的裁剪或者扩容。通过调高多个分区服务器的活跃度,再结合中心服务器的承载能力极值能够避免多个活跃度较高的分区服务器被分到同一分组中,从而满足实际应用中对服务器分组的特殊要求。
105.图7为本发明实施例提供的又一种服务器分组方法的流程图。本实施例的执行主体为服务器集群中的任一中心服务器,即目标中心服务器。如图7所示,该方法包括如下步骤:
106.s401,接收目标分区服务器根据第一分组关系发送的连接请求,其中,第一分组关系是目标分区服务器根据分组算法得到的服务器之间的分组关系。
107.s402,获取根据分组算法确定的服务器之间的第二分组关系。
108.上述步骤401~402的执行过程与前述实施例的相应步骤相似,可以参见如图1所示实施例中的相关描述,在此不再赘述。
109.s403,若根据第二分组关系确定出目标分区服务器与目标中心服务器不处于同一分组,则在预设时长内等待接收管理服务器发送的服务器之间的第三分组关系。
110.s404,若在预设时长内接收到的第三分组关系指示目标分区服务器与目标中心服务器处于同一分组,则响应连接请求,以由目标中心服务器为用户提供跨服活动。
111.s405,若在预设时长内未收到管理服务器发送的第三分组关系,则断开目标中心服务器与目标分区服务器之间的连接关系。
112.目标中心服务器接收到目标分区服务器发送的连接请求,即可对其进行响应,即建立自身与目标分区服务器之间的逻辑连接,以由目标中心服务器为用户提供跨服活动。同时,目标中心服务器还可以根据第二分组关系确定上述逻辑连接的有效性,即确定目标中心服务器是否与目标分区服务器处于同一分组。
113.若目标中心服务器确定自身与目标分区服务器处于同一分组,则目标中心服务器继续响应目标分区服务器发送的连接请求,以为用户提供跨服活动。
114.若目标中心服务器确定自身与目标分区服务器不处于同一分组,则在预设时长内等待接收管理服务器发送的第三分组关系。若中心服务器在预设时长内接收到第三分组关系,并且此第三分组关系指示目标分区服务器与目标中心服务器处于同一分组,则目标中心服务器会继续响应目标分区服务器发送的连接请求由目标中心服务器为用户提供跨服活动。
115.若目标中心服务器在预设时长内未接收到第三分组关系,又或者在预设时长内接收到了第三分组关系,但此接收到的第三分组关系指示目标分区服务器与目标中心服务器不处于同一分组,则目标中心服务器会停止响应目标分区服务器发送的连接请求,此时,用户无法参与跨服活动。
116.需要说明的有,由于在同一分组周期内,集群中的各服务器会定时在不同的分组周期执行分组算法。并且在管理服务器得到第三分组关系后又会及时将其同步至服务器集群中的各分区服务器和中心服务器,因此,正常情况下,目标中心服务器可以在较短的时间内就接收到第三分组关系,以快速确定出用户是否能够参与跨服活动。因此,即使目标中心服务器存在等待第三分组关系的过程也并不会对用户参与跨服活动的体验产生明显影响。
117.本实施例中,若目标中心服务器根据自身的第二分组关系确定无法为目标分区服务器提供跨服活动,此时,并不会直接断开连接请求,而是会以管理服务器发送的第三分组关系为依据,进行再一次判断,并最终确定是否为用户提供跨服活动,从而提高用户参与到跨服活动中的可能性。
118.根据上述各实施例中的描述可知,对服务器进行分组目的是为用户提供跨服活动,则还可以结合用户参与跨服活动的体验进行说明。
119.在不同的分组周期内,通常是由不同的中心服务器来为用户提供跨服活动的。因此,对于参与跨服活动的时长超过一个分组周期的用户,在分组周期发生改变的时刻,若分区服务器和中心服务器并未得到最新的分组结果,则只能使用上一个分组周期的分组关系确定在下一个分组周期为用户提供跨服活动的中心服务器。此时,容易出现用户被遣返会自身对应的分区服务器的情况,导致用户继续无法参与跨服活动。当分区服务器和中心服务器接收到下一个分组周期的分组关系后,才能根据最新的分组关系继续为用户提供跨服活动。上述过程会造成跨服活动的不连续。可选地,分区服务器和中心服务器接收到的下一个分组周期的分组关系可以由管理服务器发送。
120.而利用上述的各实施例,假设用户与目标分区服务器对应,并且由目标中心服务器为用户提供跨服活动,则在用户参与跨服活动的过程中,服务器集群中的各分区服务器也都可以根据分组周期定期执行自身配置的分组算法,以更新第一分组关系,类似的,中心服务器也可以定时更新第二分组关系。
121.对于参与跨服活动的时长超过一个分组周期的用户,在分组周期发生改变的时刻,服务器集群中的分区服务器与中心服务器都能够根据自身配置的分组算法得到下一个分组周期对应的分组关系,从而可以做到无感知地为用户切换提供跨服活动的中心服务器,保证跨服活动提供的连续性。
122.可选地,在实际中,跨服活动本身也具有预设的持续时长,并且不同的用户能够参与跨服活动的时长也不同,比如用户能够参与跨服活动时长的为一个分组周期。
123.假设用户与目标分区服务器对应,并且由目标中心服务器为此用户提供跨服活
动,则在为用户提供跨服活动的过程中,中心服务器还会获取此跨服活动的剩余持续时长,以及用户能够参与跨服活动的剩余时长,即第二分组关系的剩余有效时长,并进一步确定剩余持续时长和剩余有效时长的最小值,此最小值表明用户能够参与跨服活动的最小时长。
124.目标中心服务器继续为用户提供跨服活动达到上述最小值后,则可以停止为用户提供跨服活动,即断开目标中心服务器和目标分区服务器之间的连接。之后,目标中心服务器还会存储在参与跨服活动后用户的用户数据,并将此用户数据发送至用户对应的目标分区服务器中。
125.本实施例中,在跨服活动正常结束或者用户无法参与跨服活动后,目标中心服务器会正常将用户遣返会其对应的目标分区服务器,同时用户数据也一并同步至用户对应的目标分区服务器。
126.在参与跨服活动的过程中,用户也可以主动退出跨服活动。假设用户与目标分区服务器对应,并且由目标中心服务器为此用户提供跨服活动。则可选地,用户可以借助终端设备触发跨服活动退出操作,目标分区服务器可以将此跨服活动退出操作通知至目标中心服务器。目标中心服务器响应于此跨服活动退出操作,存储用户参与跨服活动后的用户数据,并将此用户数据发送至用户对应的目标分区服务器中。
127.在参与跨服活动的过程中,用户还可以暂时退出跨服活动。同样假设户与目标分区服务器绑定,并且由目标中心服务器为此用户提供跨服活动。则可选地,用户可以借助终端设备触发跨服活动暂停操作,目标中心服务器可以响应于此跨服活动暂停操作,并存储用户参与跨服活动后的用户数据。
128.之后,当用户重新参与跨服活动后,可选地,用户同样可以借助终端设备触发跨服活动继续操作。一种情况,跨服活动暂停操作和跨服活动继续操作的触发时间间隔可以小于一个分组周期,此时,用户可能是因为网络问题发生掉线,则在触发跨服活动暂停操作之前和触发跨服活动继续操作之后均由相同的中心服务器为用户提供跨服活动。
129.另一种情况,跨服活动暂停操作和跨服活动继续操作的触发时间间隔可以大于一个分组周期,则触发跨服活动暂停操作之前和触发跨服活动继续操作之后,集群中各服务器得到的分组关系也会相应发生变化,因此,触发跨服活动暂停操作之前和触发跨服活动继续操作之后通常是不同的中心服务器来为用户提供跨服活动。
130.具体地,用户在t1时刻触发跨服活动暂停操作,则根据t1时刻各服务器对应的第一分组关系和第二分组关系可知,在t1时刻之前,目标中心服务器a和用户对应的目标分区服务器之间具有第二分组关系,即由目标中心服务器a为用户提供跨服活动。并且用户在触发跨服活动暂停操作之前的用户数据也会存储于目标中心服务器a中。
131.之后,用户还可以在t2时刻触发跨服活动继续操作,此时,无论t1时刻和t2时刻的时间间隔是否大于一个分组周期,跨服活动继续操作都会先由目标中心服务器a响应,也即是由目标中心服务器a根据t2时刻各服务器对应的第二分组关系,确定在t2时刻用户对应的目标分区服务器是否与目标中心服务器a具有第二分组关系。
132.若目标分区服务器与目标中心服务器a之间不具有t2时刻对应的第二分组关系,则目标中心服务器a可以断开自身与目标分区服务器之间的连接关系,即停止为用户提供跨服服务,同时将用户数据发送至目标分区服务器中。
133.目标分区服务器还可以根据t2时刻对应的第一分组关系,在集群中确定与自身存在第二分组关系的其他中心服务器b,并向此其他中心服务器b发送连接请求。其他中心服务器b接收并响应此连接请求,也即是建立自身与目标分区服务器之间的连接关系。同时,其他中心服务器b还可以根据t2时刻对应的第二分组关系确定自身与目标分区服务器具有第二分组关系,若具有t2时刻对应的第二分组关系,则继续响应目标分区服务器发送的连接请求,继续维持自身与目标分区服务器之间的连接关系,以由其他中心服务器b继续为用户提供跨服活动。同时,其他中心服务器b也会接收目标分区服务器发送的用户数据。
134.本发明实施例还提供的一种服务器集群的结构示意图。如图2所示,该服务器集群包括:多个分区服务器和多个中心服务器。
135.服务器集群中的各分区服务器和各中心服务器中都配置有分组算法。通过执行此算法得到服务器集群中各服务器的分组关系,从而为用户提供跨服活动。
136.以多个分区服务器中的任一分区服务器即目标分区服务器以及多个中心服务器中的任一中心服务器即目标中心服务器为例进行说明:
137.目标分区服务器和目标中心服务器均可以执行分组算法以得到第一分组关系和第二分组关系。基于此,目标分区服务器可以根据第一分组关系发送连接请求至目标中心服务器。之后,目标中心服务器接收此连接请求,以建立自身与目标分区服务器之间的连接关系即实现对连接请求的响应,之后,再根据第二分组关系确定此连接关系的有效性,也即是根据第二分组关系判断是否继续响应此连接请求。若目标中心服务器可以根据第二分组关系确定出自身与目标分区服务器处于同一分组,则目标中心服务器会继续响应此连接请求,即继续保持自身与目标分区服务器之间的逻辑连接关系,由目标中心服务器为分区服务器对应的用户提供跨服活动。
138.另外,本实施例未详细描述的部分,可参考对图1至图3所示实施例的相关说明。本实施例的具体执行过程和技术效果参见图1至图3所示实施例中的描述,在此不再赘述。
139.本发明实施例还提供的另一种服务器集群的结构示意图。如图5所示,该服务器集群包括:多个分区服务器、多个中心服务器和管理服务器。
140.管理服务器中也配置有分组算法,通过执行分组算法可以得到第三分组关系,管理服务器通过将第三分组算法同步中各分区服务器以及各中心服务器,从而为用户提供跨服服务。
141.其中,集群各服务器执行分组算法的具体过程可以参见图3所示实施例中的相关描述。
142.另外,本实施例未详细描述的部分,可参考对图4至图7所示实施例的相关说明。本实施例的具体执行过程和技术效果参见图4至图7所示实施例中的描述,在此不再赘述。
143.本发明实施例提供一种电子设备,如图8所示,该电子设备可以包括:处理器21和存储器22。其中,所述存储器22用于存储支持该电子设备执行上述图1至图7所示实施例中提供的服务器分组方法的程序,所述处理器21被配置为用于执行所述存储器22中存储的程序。
144.所述程序包括一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器21执行时能够实现如下步骤:
145.其中,所述目标中心服务器为所述服务器集群中的任一中心服务器,目标分区服
务器为所述服务器集群中的任一分区服务器;
146.接收所述目标分区服务器根据第一分组关系发送的连接请求,其中,所述第一分组关系是所述目标分区服务器根据分组算法得到的服务器之间的分组关系;
147.获取根据所述分组算法确定的服务器之间的第二分组关系;
148.若根据所述第二分组关系确定响应所述连接请求,则由所述目标中心服务器为所述分区服务器对应的用户提供跨服活动。
149.可选地,所述处理器21,还用于根据分区服务器队列中的各分区服务器的排序,建立所述分区服务器队列中的至少一个分区服务器与所述目标中心服务器之间的第二分组关系,其中,所述至少一个分区服务器各自的活跃度之和大于或等于所述目标中心服务器的承载能力下限;
150.在所述服务器集群的各中心服务器分别与所述分区服务器队列中的至少一个分区服务器建立第二分组关系后,若所述分区服务器队列中存在未与任一中心服务器建立第二分组关系的第一剩余分区服务器,则确定与所述目标中心服务器建立第二分组关系的所述至少一个分区服务器各自的活跃度之和;
151.确定所述活跃度之和与所述目标中心服务器的承载能力上限之间的差值;
152.根据所述差值,建立所述目标中心服务器与第二剩余分区服务器之间的第二分组关系,所述第二剩余分区服务器包含于所述第一剩余分区服务器,所述第二剩余分区服务器各自的活跃度之和小于或等于所述差值。
153.可选地,所述处理器21,还用于若所述第一剩余分区服务器中存在未与任一中心服务器建立第二分组关系的第三剩余分区服务器、且每个分组中包含的分区服务器的活跃度之和均大于或等于所述分组包含的中心服务器的承载能力上限,则建立所述服务器集群中的预设中心服务器与所述第三剩余分区服务器之间的第二分组关系。
154.可选地,所述处理器21,还用于根据所述分组算法的执行时间所属的分组周期,确定随机数序列;
155.根据所述随机数序列,对所述服务器集群中的分区服务器进行排序,以得到所述分区服务器队列。
156.可选地,所述处理器21,还用于接收所述服务器集群中的管理服务器发送的服务器之间的第三分组关系;
157.若所述第三分组关系与所述第二分组关系不同,则用所述第三分组关系替换所述第二分组关系。
158.可选地,所述处理器21,还用于响应于所述管理服务器发送的修改通知,根据所述目标分区服务器的修改后活跃度和所述分组算法确定服务器之间的所述第二分组关系,其中,所述修改通知用于指示所述目标分区服务器的修改后活跃度;和/或,
159.响应于所述管理服务器发送的修改通知,根据所述目标中心服务器的修改后承载能力极值和所述分组算法确定服务器之间的所述第二分组关系,所述承载能力极值包括承载能力上限和承载能力下限,其中,所述修改通知同于指示所述目标中心服务器的修改后承载能力极值。
160.可选地,所述处理器21,还用于若根据所述第二分组关系确定出所述目标分区服务器与所述目标中心服务器不处于同一分组,则在预设时长内等待接收所述管理服务器发
送的服务器之间的第三分组关系;
161.若在所述预设时长内接收到的所述第三分组关系指示所述目标分区服务器与所述目标中心服务器处于同一分组,则响应所述连接请求,以由所述目标中心服务器为所述用户提供跨服活动;
162.若在所述预设时长内未收到所述管理服务器发送的所述第三分组关系,则断开所述目标分区服务器与所述目标中心服务器之间的连接关系。
163.可选地,所述处理器21,还用于获取跨服活动的剩余持续时长以及所述第二分组关系剩余有效时长;
164.确定所述剩余持续时长和所述剩余有效时长的最小值;
165.在跨服活动持续所述最小值后,断开所述目标中心服务器和所述目标分区服务器之间的连接;
166.存储所述用户参与跨服活动后的用户数据。
167.可选地,所述处理器21,还用于响应于所述用户触发的跨服活动退出操作,存储用户参与跨服活动后的用户数据;
168.将所述用户数据发送至对应于所述用户的所述目标分区服务器。
169.可选地,所述处理器21,还用于响应于所述用户触发的跨服活动暂停操作,存储所述用户参与跨服活动后的用户数据;
170.响应于所述用户触发的跨服活动继续操作,若所述目标分区服务器与所述目标中心服务器之间不具有所述第二分组关系,则断开所述目标分区服务器和所述目标中心服务器之间的连接关系;
171.发送所述用户数据至所述目标分区服务器,以使所述目标分区服务器将所述用户数据发送至所述服务器集群中的其他中心服务器,以由所述其他中心服务器为所述用户提供跨服活动。
172.可选地,其中,所述电子设备的结构中还可以包括通信接口23,用于该电子设备与其他设备或通信网络通信。
173.另外,本发明实施例提供了一种计算机存储介质,用于储存上述电子设备所用的计算机软件指令,其包含用于执行上述图1至图7所示方法实施例中服务器分组方法所涉及的程序。
174.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜