分布式会议控制方法及其系统与流程

文档序号:31448592发布日期:2022-09-07 12:37阅读:193来源:国知局
分布式会议控制方法及其系统与流程

1.本发明涉及通信技术领域,具体地,涉及分布式会议控制方法及其系统。


背景技术:

2.基于互联网的视频通信技术被广泛应用于工作和生活的视频会议场景。其中用于视频会议的会议控制系统有别于其他服务的内容提供者,具有强状态特性,即同一个会议的操作是有时序要求的,先到先处理后到后处理。但是如果同一个会议的控制被分布到不同服务器中,则不同服务器无法保障根据接收顺序进行串行处理,这种物理空间上的隔离使得不同服务器无法做到同步。例如,同一个会议中,消息a先发出,消息b后发出,但由于接收a消息的服务器1内部运行速度和处理速度都比接收b消息的服务器2慢,这将直接导致后发出的消息b反而比先发出的消息a更早地处理完成,此时必然出现故障。因此,同一个会议的控制必须被分布到同一个服务器中。
3.分布式会议控制系统一般是按会议号码进行分区控制管理。其存在的问题是当会议处于进行中时,分布式会议控制系统中的会议控制服务器发生变化,如出现故障,扩充多台等,通常需要在变化会议控制服务器之间重新分配所负责的会议号码,且需要存储记录变化后的每个会议号码与会议控制服务器的对应关系,由于在实际场景中会议号码也会经常变动(开一个会议就有一个会议号码),因此需要存储大量数据并经常在一致性选择器和会议控制服务器之间同步更新这些对应关系,占用大量的资源。
4.进一步,需要对会议数据的进行迁移,如果数据迁移量较大时,会导致会议中断;如果会议号码在会议控制服务器之间的分配不均匀,分布式会议控制系统的负载出现不均衡的情况。因此,上述情况下的分布式会议控制系统的稳定性比较差,无法维持最优运行状态,不稳定的服务导致用户体验较差。
5.为了解决上述数据迁移量大的问题,需要尽可能地减少会议数据在会议控制服务器之间的迁移,即原来会议号码对应的会议控制服务器尽量保持不变。在现有技术中,解决上述数据迁移问题常规采用的一致性算法的大致实现策略如图1所示:
6.1.定义一个虚拟哈希环,在初始状态将多个处理器如图1中的处理器cc1-cc3均匀地分布在虚拟哈希环的某个位置;
7.2.通过对计算目标9001-9003的处理,获得处理结果;
8.3.基于处理结果,将计算目标落到虚拟哈希环上的随机位置;
9.4.从计算目标所在的随机位置出发,沿着虚拟哈希环顺时针查找下一个处理器的位置,选择该处理器。
10.例如,图1中的计算目标9001选择处理器cc2,计算目标9002选择处理器cc3,计算目标9003选择处理器cc1。
11.但是不难发现,此类哈希一致性算法的均匀性取决于虚拟哈希环上处理器的分布状态。即使首次处理器可均匀分布,但后续随着处理器的增加或减少,不一定能保证变化后的处理器依然有较高的均匀性,很大概率会出现虚拟哈希环倾斜的情况,如图2和图3所示。
12.图2中减少处理器cc3后,可保证原来选择处理器cc1和cc2的计算目标不受影响,但原来选择处理器cc3的计算目标将会全部按照顺时针方向查找落在处理器cc1上。即使通过复制多个处理器cc1和cc2的副本保证虚拟哈希环分切至足够小的单位,只要处理器增删无规律,必然会出现虚拟哈希环倾斜。
13.图3中增加处理器cc4后,可保证原来选择处理器cc3和cc2的计算目标不受影响,对于落在cc3到cc4之间的原来选择处理器cc1的计算目标,如计算目标9003,将会按照顺时针方向查找到处理器cc4,即由处理器cc4承接原来由处理器cc1处理的所有落在cc3到cc4之间的计算目标。如此分配后,处理器cc2和cc3的业务量并没有被新的处理器cc4所分担,而只有处理器cc1的业务量被处理器cc4分担。因此当增加处理器时,极其容易出现计算目标分配不均的问题。
14.分布式控制系统的扩容或缩容对均匀性是有一定要求的,如出现扩容或缩容导致业务量分布不均匀,则可能引发故障的蔓延及雪崩。以图2为例,假如每个处理器的设计容量是处理500个计算目标:
15.当服务正常运行时,处理器cc1、cc2和cc3各承担300个计算目标的业务量。
16.当处理器cc3故障时,处理器cc3的所有300个计算目标都分配给处理器cc1,从而出现虚拟哈希环倾斜,即处理器cc1将承接600个计算目标,这将会出现故障的雪崩。详细分析如下:
17.1.cc2承接的300业务量无变化,管理300业务量;
18.2.cc1独自接管cc3空出来业务,管理600业务量;
19.3.cc1业务量超设计容量,崩溃后导致故障;
20.4.cc2接管cc1上面的600业务量,导致cc2超限,继续故障,无处理器则意味着业务彻底瘫痪。
21.上述超设计容量则导致故障,虽然可以通过限制其容量保证故障不扩散,但代价则处理器cc1只能接管处理器cc3空出来的200业务,致使100业务无法接管而受损。
22.因此现有技术中常规的哈希一致性算法不能解决上述由于处理器数量变化而导致计算目标在处理器之间的分配不均衡问题。


技术实现要素:

23.本发明提供了一种分布式会议控制方法及其系统,有效实现了分布式会议系统的灵活管理,在分布式会议控制系统中的会议控制服务器发生变化时,可确保服务故障时会议不中断,服务扩容时可维持分布式会议控制系统的负载均衡状态,为用户提供持续稳定可靠的服务。
24.第一方面,本发明提供了一种分布式会议控制方法,其特征在于,所述方法包括:
25.在一致性选择器中包含哈希阵列,所述哈希阵列包括多个阵列单元,每个所述阵列单元对应一个会议控制服务器;
26.接收带有唯一对应的会议号码的数据;
27.所述一致性选择器对接收的数据对应的会议号码进行转换;
28.根据转换结果唯一地选择所述会议号码对应的所述阵列单元;
29.将所述会议号码对应的数据传输给选择的所述阵列单元中对应的所述会议控制
服务器。
30.第二方面,本发明还提供了一种分布式会议控制系统,其特征在于,所述系统包括:
31.接收装置,其用于接收带有唯一对应的会议号码的数据;
32.一致性选择器,在所述一致性选择器中包含哈希阵列,所述哈希阵列包括多个阵列单元,每个所述阵列单元对应一个会议控制服务器,所述一致性选择器对接收的数据对应的会议号码进行转换,根据转换结果唯一地选择所述会议号码对应的所述阵列单元;
33.传输装置,其用于将所述会议号码对应的数据传输给选择的所述阵列单元中对应的所述会议控制服务器。
34.第三方面,本发明还提供了一种分布式会议控制方法,其特征在于,所述方法包括:
35.对会议号码执行哈希计算,获得哈希值;
36.对所述哈希值进行转换,获得转换结果;
37.根据所述转换结果唯一地选择所述会议号码对应会议控制服务器。
38.本发明提供的分布式会议控制方法及其系统,基于阵列单元的部署:第一,一致性选择器将同一个会议的数据唯一地选择其会议号码对应的阵列单元,例如不论是处理音视频服务器还是处理录制服务器输出的数据,只要会议号码一致,必然选择同一个阵列单元,确保强状态属性,即确保同一个会议的操作先到先处理后到后处理;第二,所有会议号码都被一致性选择器通过算法(而非传统的存储记录)均匀地散列在哈希阵列中,即落在每个阵列单元中的会议号码基本相同,算法仅消耗cpu,跨语言通用,且可以随时被集成到周边服务器,即使当前存在几十万个会议,算法选择的效率也非常高,而传统的存储记录的方式,当会议数据量巨大时,选择的代价就会更大,存储的查询与比较会随着会议数据量的增加而增加;第三,确保每个阵列单元单元对应一个会议控制服务器,且所有的会议控制服务器都被均匀地分布在哈希阵列中,即每个会议控制服务器对应的阵列单元数基本相同;第四,当分布式会议控制系统中的会议控制服务器数量发生变化时,在达到全部会议号码在会议控制服务器之间重新均匀分布的同时,可确保最小范围的迁移,需要改变会议控制服务器的阵列单元数量最少,并非会议控制服务器全部打乱重新在哈希阵列中排列。在减少会议控制服务器时,现存的其他会议控制服务器轮流遍历释放出的阵列单元,在增加会议控制服务器时,增加的会议控制服务器轮流遍历原有会议控制服务器释放出的阵列单元,并且在重新分配阵列单元的结果时,只需要存储记录阵列单元与会议控制服务器之间的对应关系,不需要存储记录会议号码与阵列单元的对应关系,其在需要的时候临时计算即可,其中阵列单元与会议控制服务器之间的对应关系,由于哈希阵列中阵列单元数量固定,且会议控制服务器数量的变化幅度和变化频率不会太大,所以不会占用太多存储空间也不需要经常更新;第五,业务层面的无感知数据迁移,保障用户体验无缝切换。
39.以上第二、第三点通过阵列单元的设置,简单高效地实现了基于会议号码全部会议均匀散列在分布式会议控制系统中的所有会议控制服务器上,达到负载均衡的目的。
40.第四、第五点可确保服务故障时会议不中断,服务扩容时可维持分布式会议控制系统的负载均衡状态,以及最小范围的迁移,为用户提供持续稳定可靠的服务,实现了分布式会议系统的灵活管理。
附图说明
41.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
42.图1是现有技术中哈希一致性算法原理示意图;
43.图2是现有技术中减少处理器时哈希一致性算法处理示意图;
44.图3是现有技术中增加处理器时哈希一致性算法处理示意图;
45.图4是本发明实施例提供的分布式会议控制方法流程图;
46.图5是本发明实施例提供的常规场景的一致性计算示意图;
47.图6是本发明实施例提供的减少会议控制服务器分布式会议控制方法流程图;
48.图7是本发明实施例提供的增加会议控制服务器分布式会议控制方法流程图
49.图8是本发明实施例提供的减少会议控制服务器的一致性计算示意图;
50.图9是本发明实施例提供的增加会议控制服务器的一致性计算示意图;
51.图10是本发明实施例提供的分布式会议控制系统示意图。
具体实施方式
52.下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
53.发明概述
54.如前所述,本发明提供了一种管理灵活的分布式会议控制方法及其系统,能显著的提升服务的稳定性,主要体现在如下几点:
55.1.分布式服务在服务重启或故障时可做到会议控制系统无感迁移,会议无中断,呼叫无掉话;
56.2.应对压力瓶颈,分布式服务进行扩容或缩容时,可将当前会议无损切换到新服务,立即完成负载均衡的策略控制;
57.3.本发明涉及的迁移操作,能给用户带来无感会议重建,确保会议体验不中断。
58.示例性方法
59.图4是本发明实施例提供的分布式会议控制方法流程图,该实施例包括以下步骤:
60.s401:在一致性选择器中包含哈希阵列,所述哈希阵列包括多个阵列单元,每个所述阵列单元对应一个会议控制服务器。
61.其中,一致性选择器为会议控制服务器的前置选择点,一致性选择器被集成在一个或多个周边服务器。所述周边服务器包括处理终端消息的接入服务器、处理录制直播的专用服务器、处理音视频的媒体专用服务器等。
62.所述哈希阵列为n行m列的阵列,其中m和n均为大于等于1的整数。哈希阵列中包含n
×
m个阵列单元,如n=6,m=8,则哈希阵列中包含48个阵列单元。
63.所述会议控制服务器为对会议的进程及任务进行统筹控制管理的服务器,例如用户先点击“字幕”按钮,然后点击“录制”按钮,会议控制服务器将先处理添加字幕任务,再处理录制任务。
64.所述步骤s401具体包括:将多个所述会议控制服务器轮流遍历所述哈希阵列中的
每个所述阵列单元,使得每个所述阵列单元对应一个所述会议控制服务器,并且每个所述会议控制服务器在所述阵列单元中均匀分布。
65.其中,每个会议控制服务器对应一个或多个阵列单元。当阵列单元总数n
×
m是会议控制服务器总数的倍数时,则每个会议控制服务器对应的阵列单元数相等;当阵列单元总数n
×
m不是会议控制服务器总数的倍数时,则每个会议控制服务器对应的阵列单元数不完全相等但相近。例如阵列单元总数为35,会议控制服务器总数为5,则每个会议控制服务器对应的阵列单元数为7;阵列单元总数为40,会议控制服务器总数为7,则5个会议控制服务器对应的阵列单元数为6,2个会议控制服务器对应的阵列单元数为5。
66.具体的,如图5中所示,哈希阵列为6行8列的阵列,阵列单元总数为48。将会议控制服务器cc1、cc2、cc3、cc4按行轮流填入哈希阵列中的每个阵列单元中,即哈希阵列从左到右依次为cc1、cc2、cc3、cc4、cc1、cc2、cc3、cc4、
……
67.其中每个阵列单元中填入一个会议控制服务器,每个会议控制服务器对应12个阵列单元。
68.在此不限定会议控制服务器轮流遍历哈希阵列的具体方式,包括按行遍历、按列遍历、按折线遍历等。其中按折线遍历,如按照(1,1)(1,2)(2,1)(2,2)(3,1)(3,2)的折线顺序依次填入会议控制服务器,其中(1,2)表示第一列第二行的阵列单元。
69.也不限定按照cc1、cc2、cc3、cc4顺序遍历,还是按照cc1、cc2遍历完,即在阵列单元中分别填完12个cc1和12个cc2后,再继续对剩余的阵列单元填入cc3、cc4完成遍历,或者先对cc1完成遍历再对cc2完成遍历等。
70.总之,本发明中会议控制服务器轮流遍历哈希阵列后,使得每个所述阵列单元对应一个所述会议控制服务器,并且每个所述会议控制服务器在所述阵列单元中均匀分布,即每个会议控制服务器对应的阵列单元数完全相等或相近,相同会议控制服务器在哈希阵列中的位置分布可以集中,也可以分散。
71.s402:接收带有唯一对应的会议号码的数据。
72.具体的,接收的数据包括未经周边服务器处理的数据和/或经过周边服务器处理的数据。一个或多个周边服务器用于处理来自一个或多个会议的数据,所述数据均对应唯一的会议号码。例如,处理录制直播的专用服务器对多个会议的录制直播原始数据进行处理,获得多个处理后的录制直播数据,不论是处理前的数据,还是处理后的数据,都唯一对应一个会议号码,如会议号码为9002的录制直播原始数据,经过处理后得到的处理后的录制直播数据的会议号码还是9002。
73.s403:所述一致性选择器对接收的数据对应的会议号码进行转换。
74.所述s403具体包括:所述一致性选择器对所述会议号码执行哈希计算,获得哈希值,将所述哈希值对所述阵列单元总数取模,获得所述转换结果。
75.所述哈希计算将所述会议号码作为一个字符串,用一个魔术字加上所述会议号码的每个字符对应的ascii码,形成一个数值,并对所述数值执行同样的位移及加减操作,输出一个整型哈希值。
76.例如,一个魔术字为389283099(二进制表示为:10111001100111111110100011011),加上会议号码的每个字符对应的ascii码(例如,9002对应的ascii码为0011 1001 0011 0000 0011 0000 0011 0010),形成一个新的数值(例
如,可以在魔术字末尾接上会议号码的每个字符对应的ascii码,即获得一个二进制数1011100110011111111010001101100111001001100000011000000110010),然后对该数值执行预定同样的位移及加减操作,输出一个整型哈希值(例如为107)。将整型哈希值107对阵列单元总数48取模,107%48=11,余数11即为转换结果。其中会议号码为一个基础大数,其每个字符的ascii码为标准码,跨语言通用。哈希计算的目的是将一个字符串计算为整数,跨语言通用。魔术字、ascii码、位移及加减逻辑跨语言通用,故计算结果也是跨语言一致性的。
77.一致性选择器对会议号码转换的整个计算过程以及计算结果都不受空间、时间以及语言限制,且无需对计算结果进行存储的读写行为,因此可对应超大规模并发选择。
78.因此,本发明通过哈希计算以及取模,即算法,实现对会议号码的一致性计算,而非使用传统的存储记录,可以带来如下好处:算法仅消耗cpu,跨语言通用,且可以随时被集成到周边服务器,即使当前存在几十万个会议,算法选择的效率也非常高。而存储记录的方式,当会议数据量巨大时,选择的代价就会更大,存储的查询与比较会随着会议数据量的增加而增加。
79.s404:根据转换结果唯一地选择所述会议号码对应的所述阵列单元。
80.如在上一个例子中,图5中会议号码9002根据余数11唯一选择哈希阵列中对应的阵列单元(3,2)。其中一个会议号码唯一地对应一个阵列单元,而一个阵列单元可能对应多个不同的会议号码。例如将155对48取模,余数为11;将203、251等哈希值对48取模,余数也为11。则哈希值为107、155、203、251等的会议号码都对应哈希阵列中余数为11的阵列单元。
81.其中,s403和s404通过哈希计算及取模计算确保了会议号码在阵列单元中的均匀分布,即每个阵列单元中的会议号码数量均衡。
82.s405:将所述会议号码对应的数据传输给选择的所述阵列单元中对应的所述会议控制服务器。
83.如图5中所示,对会议号码9001-9008进行转换后:
84.会议号码9001对应第1行第4列的阵列单元,则其对应的数据传输给会议控制服务器cc4;
85.会议号码9002对应第2行第3列的阵列单元,则其对应的数据传输给会议控制服务器cc3;
86.会议号码9003对应第3行第2列的阵列单元,则其对应的数据传输给会议控制服务器cc2;
87.会议号码9004对应第4行第1列的阵列单元,则其对应的数据传输给会议控制服务器cc1。
88.其余会议号码在哈希阵列中的分布详见图5。
89.常规场景下,重点需要保证同一个会议号码选择同一个会议控制服务器,即选择的一致性,以及每个会议控制服务器对应的会议号码数量均匀,即会议号码的均匀分布。
90.由于每个会议号码唯一对应一个阵列单元,每个阵列单元唯一对应一个会议控制服务器,则每个会议号码唯一对应一个会议控制服务器,确保了选择的一致性,即会议号码选择会议控制服务器的一致性,从而实现了一个会议的所有行为必然落在同一个会议控制服务器,确保强状态属性。
91.由于每个阵列单元对应的会议号码数量均匀,每个会议控制服务器对应的阵列单元数量均匀,因此每个会议控制服务器对应的会议号码数量均匀,即会议控制服务器负载均衡,会议系统稳定性较强。
92.进一步,图6是本发明实施例提供的减少会议控制服务器分布式会议控制方法流程图。
93.当减少会议控制服务器的数量时,包括以下步骤:
94.s601:将减少的所述会议控制服务器对应的所述阵列单元进行释放,获得释放出的阵列单元;
95.s602:对现存的所述会议控制服务器进行再次轮流遍历所述释放出的阵列单元,使得每个所述释放出的阵列单元对应一个再次遍历后的会议控制服务器,并且所述现存的会议控制服务器在所述释放出的阵列单元中均匀分布;
96.s603:对所述释放出的阵列单元对应的减少的会议控制服务器中数据执行迁移,使得所述数据被迁移到再次遍历后重新分配给该阵列单元的会议控制服务器;
97.s604:根据重新分配阵列单元的结果更新所述哈希阵列。
98.图7是本发明实施例提供的增加会议控制服务器分布式会议控制方法流程图。
99.当增加会议控制服务器的数量时,包括以下步骤:
100.s701:计算每个原有会议控制服务器需要释放出其所占用的所述阵列单元数量;
101.s702:根据释放的数量,将每个所述原有会议控制服务器释放出相应数量的所述阵列单元,获得释放出的阵列单元;
102.s703:对增加的所述会议控制服务器进行再次轮流遍历所述释放出的阵列单元,使得每个所述释放出的阵列单元对应一个再次遍历后的会议控制服务器,并且所述增加的会议控制服务器在所述释放出的阵列单元中均匀分布;
103.s704:对所述释放出的阵列单元对应的原有的会议控制服务器中数据执行迁移,使得所述数据被迁移到再次遍历后重新分配给该阵列单元的会议控制服务器;
104.s705:根据重新分配阵列单元的结果更新所述哈希阵列。
105.具体地,一种可选的实施方式,当减少会议控制服务器的数量时,会议控制服务器在哈希阵列中的分布变化由图5变成图8。会议控制服务器由cc1-cc4减少为cc1-cc3,减少了会议控制服务器cc4。其中,哈希阵列中的阵列单元总数不变。
106.首先,将减少的会议控制服务器cc4对应的12个阵列单元,即图8中第4列和第8列的阵列单元,进行释放,获得12个释放出的阵列单元。
107.其次,将现存的所述会议控制服务器cc1-cc3再次轮流遍历上述12个释放出的阵列单元,使得每个释放出的阵列单元对应一个再次遍历后的会议控制服务器,并且所述现存的会议控制服务器在所述释放出的阵列单元中均匀分布。如图8中会议控制服务器cc1-cc3按列轮流遍历释放出的阵列单元,cc1、cc2和cc3在12个释放出的阵列单元中各分布了4个。如前述s401中释义,同理,经过再次轮流遍历后,现存的会议控制服务器对应的释放出的阵列单元数相等或相近,且会议控制服务器的排列顺序以及其轮流遍历哈希阵列的具体方式也不做限定。
108.其中,基于会议控制服务器之间的相互发现机制来确定减少的会议控制服务器,即哈希阵列中的其他会议控制服务器cc1-cc3都有可能发现确定减少的会议控制服务器
cc4,进而对释放出的阵列单元再次轮流遍历,然后重新分配所述阵列单元。例如cc1发现减少的cc4后,对释放出的阵列单元再次轮流遍历,在释放出的阵列单元中分别分布了4个cc1、cc2和cc3,即重新分配哈希阵列中需要变化的部分。
109.再次,对所述释放出的阵列单元对应的减少的会议控制服务器cc4中数据执行迁移,使得所述数据被迁移到再次遍历后重新分配给该阵列单元的会议控制服务器cc1-cc3。
110.对所述数据执行迁移时,即执行迁会时,通知终端自动重呼,再次入会后会选择正确的会议控制服务器,且终端自动重呼对于用户来说是无感知的。
111.最后,根据重新分配阵列单元的结果更新所述哈希阵列,并将更新的哈希阵列发送给所有现有会议控制服务器和一致性选择器。
112.重新分配阵列单元的结果即所有释放的阵列单元重新分布会议控制服务器的结果。
113.总之,当减少会议控制服务器的数量时,并不是对所有会议执行打乱后的重新排布,而是选择最小范围的变化。直接将减少的会议控制服务器cc4对应的阵列单元,即第4列和第8列重新分布给剩余的其他会议控制服务器cc1-cc3。需要说明的是,当减少会议控制服务器的数量时,会议号码唯一对应的阵列单元并没有变化,只是小范围的阵列单元唯一对应的会议控制服务器有变化,因此这部分会议号码对应的会议控制服务器有变化。此处可以将阵列单元当作坑位,会议控制服务器是坑位中的内容,当内容变少,会议号码对应的坑位依然不变,只是某些坑位中的内容有变化,则这部分会议号码对应的内容改变。进一步,在重新分配阵列单元的结果时,只需要存储记录阵列单元与会议控制服务器之间的对应关系,不需要存储记录会议号码与阵列单元的对应关系,其在需要的时候临时计算即可。其中阵列单元与会议控制服务器之间的对应关系,由于哈希阵列中阵列单元数量固定,且会议控制服务器数量的变化幅度和变化频率不会太大,所以不会占用太多存储空间也不需要经常更新。而现有技术中当会议控制服务器数量发生变化时,需要存储每个会议号码与会议控制服务器的对应关系。并且在实际场景中会议号码也会经常变动(开一个会议就有一个会议号码),这样需要存储大量数据并经常在一致性选择器和会议控制服务器之间同步更新这些对应关系,占用大量的资源。
114.并且由于现存的会议控制服务器在所述释放出的阵列单元中均匀分布,则现存的会议控制服务器在哈希阵列的全部阵列单元中均匀分布,因此可确保会议控制服务器故障时维持分布式会议控制系统的负载均衡状态。
115.具体地,一种可选的实施方式,当增加所述会议控制服务器的数量时,会议控制服务器在哈希阵列中的分布变化由图5变成图9。会议控制服务器由cc1-cc4增加为cc1-cc6,增加了会议控制服务器cc5和cc6。其中,哈希阵列中的阵列单元总数不变。
116.首先,计算每个原有会议控制服务器cc1-cc4需要释放出其所占用的阵列单元数量:
117.原有会议控制服务器数量为4,阵列单元总数为48,则每个原有会议控制服务器对应48/4=12个阵列单元;
118.增加后的会议控制服务器数量为6,阵列单元总数为48,则每个原有会议控制服务器对应48/6=8个阵列单元;
119.因此,4个原有会议控制服务器cc1-cc4需要分别释放12-8=4个阵列单元。
120.其次,根据上述计算结果,cc1-cc4分别释放4个阵列单元,获得16个释放出的阵列单元,如图9中示出的第5-8列中的部分阵列单元。此处不限定释放的阵列单元的具体位置,例如cc1可以从第一列中随意选取任意4个阵列单元进行释放。
121.其中,基于会议控制服务器之间的相互发现机制,每个会议控制服务器都有可能发现确定了增加的会议控制服务器cc5和cc6。例如cc1发现增加的cc5和cc6后,从它的阵列单元中任意选择4个进行释放,即重新分配哈希阵列中cc1需要变化的部分。
122.再次,对增加的所述会议控制服务器cc5和cc6进行再次轮流遍历所述释放出的阵列单元,使得每个所述释放出的阵列单元对应一个再次遍历后的会议控制服务器,并且所述增加的会议控制服务器cc5和cc6在所述释放出的阵列单元中均匀分布。如图9中cc5和cc6在16个释放出的阵列单元中各分布了8个。如前述s401中释义,同理,经过再次轮流遍历后,增加的会议控制服务器对应的释放出的阵列单元数相等或相近,且会议控制服务器的排列顺序以及其轮流遍历哈希阵列的具体方式也不做限定。
123.从次,对所述释放出的阵列单元对应的原有的会议控制服务器cc1-cc4中数据执行迁移,使得所述数据被迁移到再次遍历后重新分配给该阵列单元的会议控制服务器cc5或cc6;
124.对所述数据执行迁移时,即执行迁会时,通知终端自动重呼,再次入会后会选择正确的会议控制服务器,且终端自动重呼对于用户来说是无感知的。
125.最后,根据重新分配阵列单元的结果更新所述哈希阵列,并将更新的哈希阵列发送给所有现有会议控制服务器和一致性选择器。
126.重新分配阵列单元的结果即所有释放的阵列单元重新分布会议控制服务器的结果。
127.总之,当增加会议控制服务器的数量时,并不是对所有会议执行打乱后的重新排布,而是选择最小范围的变化。阵列单元总数48固定,当会议控制服务器数量由4增加为6,在确保增加后的会议控制服务器在哈希阵列的全部阵列单元中均匀分布的前提下,需要释放的最少阵列单元数为16,即原有会议控制服务器分别释放4个阵列单元。cc5和cc6各对应8个释放出的阵列单元。需要说明的是,当增加会议控制服务器的数量时,会议号码唯一对应的阵列单元并没有变化,只是小范围的阵列单元唯一对应的会议控制服务器有变化,因此这部分会议号码对应的会议控制服务器有变化。进一步,在重新分配阵列单元的结果时,只需要存储记录阵列单元与会议控制服务器之间的对应关系,不需要存储记录会议号码与阵列单元的对应关系,其在需要的时候临时计算即可。其中阵列单元与会议控制服务器之间的对应关系,由于哈希阵列中阵列单元数量固定,且会议控制服务器数量的变化幅度和变化频率不会太大,所以不会占用太多存储空间也不需要经常更新。
128.并且由于增加的会议控制服务器在所述释放出的阵列单元中均匀分布,则增加变化后的所有会议控制服务器在哈希阵列的全部阵列单元中均匀分布,因此可确保会议控制服务器扩充多台时维持分布式会议控制系统的负载均衡状态。值得注意的是,图9中会议号码数量有限,因此无法完全体现变化后的会议控制服务器在阵列单元中均匀分布,实际应用场景中的会议号码数量庞大,会议号码数量越大,分布越均匀。
129.综合分布式服务的上述三种场景,即常规场景、减少会议控制服务器(分布式服务缩容)和增加会议控制服务器(分布式服务扩容),本发明中对阵列单元的引入,直接大大简
化了会议在会议控制服务器中的均衡部署,尤其是当会议控制服务器数量变化时。通过阵列单元连接了会议号码与会议控制服务器:
130.a.每个会议号码唯一对应阵列单元;
131.b.每个阵列单元唯一对应会议控制服务器。
132.当会议控制服务器数量发生变化时,a中对应关系不变且不需要存储记录,b中小范围均匀变化,综合实现了变化范围最小,且会议号码在会议控制服务器中的均衡分布。
133.另外,无感迁会能给用户带来无感会议重建,确保会议体验无缝切换不中断。
134.综上,此处为了方便理解将本发明中的关键模块分别做如下类比:
135.会议相当于学生;
136.会议号码相当于学生的学号;
137.会议号码对应的数据相当于带有学号的包裹,一个包裹带有一个学号;
138.一致性选择器相当于收发室;
139.阵列单元相当于班级;
140.会议控制服务器相当于班主任。
141.当接收到带有学号的包裹,此处不论接收到的包裹来自何处,如快递或平邮,包裹上都会有唯一的学号;收发室根据学号找到对应的班级;进一步把包裹交给该班级对应的班主任。
142.其中需要保证两个数量均匀:
143.第一,每个学号唯一对应一个班级,但是一个班级可能对应多个学号,需要保证分配到每个班的学生数量均匀,即学号数量均匀;
144.第二,每个班级唯一对应一个班主任,但是一个班主任可能负责多个班级,取决于班级总数和班主任总数,需要保证每位班主任负责的班级数量比较均匀。
145.上述两个均匀使得每位班主任负责的学生数均匀,当学生总数越多,每位班主任负责的学生数越均匀。
146.当班主任数量减少时,如班主任a离职,其他剩余的班主任将班主任a负责的班级接手,且每个剩余的班主任接手的班级数相等或相近;
147.当班主任数量增加时,如班主任q入职,用原来每位班主任负责的班级数减去新增后每位班主任负责的班级数,计算出原来每位班主任应该交付出的班级数。原来的班主任根据上述数据交付对应数目的班级给班主任q。
148.如果没有设置固定数量的班级,在班主任增加或减少时,为了实现每位班主任负责的学生数均衡,数量变化后的全体班主任需要直接联系学生来确定其负责的学生,操作复杂,而且不容易实现负载均衡。
149.本发明还提供了一种分布式会议控制方法,所述方法包括:
150.对会议号码执行哈希计算,获得哈希值;
151.对所述哈希值进行转换,获得转换结果;
152.根据所述转换结果唯一地选择所述会议号码对应会议控制服务器。
153.此方法在会议控制服务器数量不变的情况下,仅仅通过对会议号码进行哈希计算就可以使会议号码唯一对应其中一个会议控制服务器,并且不必引入阵列单元就可以实现本发明的目的,即保证会议业务的连续性和负载均衡。另外也不需要预先存储会议号码与
会议控制服务器之间的对应关系,存储量较小。
154.示例性系统
155.相应地,本发明实施例还提供了一种分布式会议控制系统。图10是本发明实施例提供的分布式会议控制系统100示意图,如图10所示,本实施例提供的系统包括:
156.接收装置101,其用于接收带有唯一对应的会议号码的数据。
157.一致性选择器102,在所述一致性选择器中包含哈希阵列,所述哈希阵列包括多个阵列单元,每个所述阵列单元对应一个会议控制服务器,所述一致性选择器对接收的数据对应的会议号码进行转换,根据转换结果唯一地选择所述会议号码对应的所述阵列单元。
158.一致性选择器102被集成在一个或多个周边服务器;所述一个或多个周边服务器处理来自一个或多个会议的数据,所述数据均对应唯一的会议号码。
159.其中一致性选择器102中还包含遍历单元1021,其用于将多个所述会议控制服务器轮流遍历所述哈希阵列中的每个所述阵列单元,使得每个所述阵列单元对应一个所述会议控制服务器,并且每个所述会议控制服务器在所述阵列单元中均匀分布。
160.一致性选择器102中还包含转换单元1022,其用于对所述会议号码执行哈希计算,获得哈希值,将所述哈希值对所述阵列单元总数取模,获得所述转换结果。
161.转换单元1022包括哈希计算模块1023,其用于将所述会议号码作为一个字符串,用一个魔术字加上所述会议号码的每个字符对应的ascii码,形成一个数值,并对所述数值执行同样的位移及加减操作,输出一个整型哈希值。
162.传输装置103,其用于将所述会议号码对应的数据传输给选择的所述阵列单元中对应的所述会议控制服务器。
163.分布式会议控制系统100,还包括释放单元1001、迁移单元1002、更新单元1003和计算单元1004;
164.当减少所述会议控制服务器的数量时,
165.所述释放单元1001用于将减少的所述会议控制服务器对应的所述阵列单元进行释放,获得释放出的阵列单元;
166.所述遍历单元1021用于对现存的所述会议控制服务器进行再次轮流遍历所述释放出的阵列单元,使得每个所述释放出的阵列单元对应一个再次遍历后的会议控制服务器,并且所述现存的会议控制服务器在所述释放出的阵列单元中均匀分布;
167.所述迁移单元1002用于对所述释放出的阵列单元对应的减少的会议控制服务器中数据执行迁移,使得所述数据被迁移到再次遍历后重新分配给该阵列单元的会议控制服务器;
168.所述更新单元1003用于根据重新分配阵列单元的结果更新所述哈希阵列。
169.当增加所述会议控制服务器的数量时,
170.计算单元1004,其用于计算每个原有会议控制服务器需要释放出其所占用的所述阵列单元数量;
171.释放单元1001,其用于根据释放的数量,将每个所述原有会议控制服务器释放出相应数量的所述阵列单元,获得释放出的阵列单元;
172.遍历单元1021,其用于对增加的所述会议控制服务器进行再次轮流遍历所述释放出的阵列单元,使得每个所述释放出的阵列单元对应一个再次遍历后的会议控制服务器,
并且所述增加的会议控制服务器在所述释放出的阵列单元中均匀分布;
173.迁移单元1002,其用于对所述释放出的阵列单元对应的原有的会议控制服务器中数据执行迁移,使得所述数据被迁移到再次遍历后重新分配给该阵列单元的会议控制服务器;
174.更新单元1003,其用于根据重新分配阵列单元的结果更新所述哈希阵列。
175.当会议控制服务器数量变化时,会议控制服务器基于会议控制服务器之间的相互发现机制来确定增加或减少的会议控制服务器。
176.当会议控制服务器发现有增加或减少的其他会议控制服务器时,所述更新单元1003更新所述哈希阵列并将更新的哈希阵列发送给所有现有会议控制服务器和一致性选择器102。
177.应当注意,尽管在附图中以特定顺序描述了本发明分布式会议控制方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
178.此外,尽管在上文详细描述中提及了分布式会议控制系统的若干装置、单元、或模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
179.虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。本发明提供了:1、一种分布式会议控制方法,其特征在于,所述方法包括:在一致性选择器中包含哈希阵列,所述哈希阵列包括多个阵列单元,每个所述阵列单元对应一个会议控制服务器;接收带有唯一对应的会议号码的数据;所述一致性选择器对接收的数据对应的会议号码进行转换;根据转换结果唯一地选择所述会议号码对应的所述阵列单元;将所述会议号码对应的数据传输给选择的所述阵列单元中对应的所述会议控制服务器。2、根据第1项所述的分布式会议控制方法,其特征在于,所述在一致性选择器中包含哈希阵列,所述哈希阵列包括多个阵列单元,每个所述阵列单元对应一个会议控制服务器具体包括:将多个所述会议控制服务器轮流遍历所述哈希阵列中的每个所述阵列单元,使得每个所述阵列单元对应一个所述会议控制服务器,并且每个所述会议控制服务器在所述阵列单元中均匀分布。3、根据第1项或第2项所述的分布式会议控制方法,其特征在于,所述一致性选择器对接收的数据对应的会议号码进行转换具体包括:
所述一致性选择器对所述会议号码执行哈希计算,获得哈希值,将所述哈希值对所述阵列单元总数取模,获得所述转换结果。4、根据第1至3项中的任意一项所述的分布式会议控制方法,其特征在于,还包括:当减少所述会议控制服务器的数量时,将减少的所述会议控制服务器对应的所述阵列单元进行释放,获得释放出的阵列单元;对现存的所述会议控制服务器进行再次轮流遍历所述释放出的阵列单元,使得每个所述释放出的阵列单元对应一个再次遍历后的会议控制服务器,并且所述现存的会议控制服务器在所述释放出的阵列单元中均匀分布;对所述释放出的阵列单元对应的减少的会议控制服务器中数据执行迁移,使得所述数据被迁移到再次遍历后重新分配给该阵列单元的会议控制服务器;根据重新分配阵列单元的结果更新所述哈希阵列。5、根据第1至4项中的任意一项所述的分布式会议控制方法,其特征在于,还包括:当增加所述会议控制服务器的数量时,计算每个原有会议控制服务器需要释放出其所占用的所述阵列单元数量;根据释放的数量,将每个所述原有会议控制服务器释放出相应数量的所述阵列单元,获得释放出的阵列单元;对增加的所述会议控制服务器进行再次轮流遍历所述释放出的阵列单元,使得每个所述释放出的阵列单元对应一个再次遍历后的会议控制服务器,并且所述增加的会议控制服务器在所述释放出的阵列单元中均匀分布;对所述释放出的阵列单元对应的原有的会议控制服务器中数据执行迁移,使得所述数据被迁移到再次遍历后重新分配给该阵列单元的会议控制服务器;根据重新分配阵列单元的结果更新所述哈希阵列。6、根据第1至5项中的任意一项所述的分布式会议控制方法,其特征在于,所述一致性选择器被集成在一个或多个周边服务器;所述一个或多个周边服务器处理来自一个或多个会议的数据,所述数据均对应唯一的会议号码。7、根据第4项或第5项所述的分布式会议控制方法,其特征在于,基于会议控制服务器之间的相互发现机制来确定增加或减少的会议控制服务器。8、根据第4项、第5项或第7项所述的分布式会议控制方法,其特征在于,当所述会议控制服务器发现有增加或减少的其他会议控制服务器时,更新所述哈希阵列并将更新的哈希阵列发送给所有现有会议控制服务器和一致性选择器。9、根据第3项所述的分布式会议控制方法,其特征在于,所述哈希计算将所述会议号码作为一个字符串,用一个魔术字加上所述会议号码的每个字符对应的ascii码,形成一个数值,并对所述数值执行同样的位移及加减操作,输出一个整型哈希值。10、一种分布式会议控制系统,其特征在于,所述系统包括:接收装置,其用于接收带有唯一对应的会议号码的数据;一致性选择器,在所述一致性选择器中包含哈希阵列,所述哈希阵列包括多个阵列单元,每个所述阵列单元对应一个会议控制服务器,所述一致性选择器对接收的数据对
应的会议号码进行转换,根据转换结果唯一地选择所述会议号码对应的所述阵列单元;传输装置,其用于将所述会议号码对应的数据传输给选择的所述阵列单元中对应的所述会议控制服务器。11、根据第10项所述的分布式会议控制系统,其特征在于,所述一致性选择器中还包含遍历单元,其用于:将多个所述会议控制服务器轮流遍历所述哈希阵列中的每个所述阵列单元,使得每个所述阵列单元对应一个所述会议控制服务器,并且每个所述会议控制服务器在所述阵列单元中均匀分布。12、根据第10项或第11项所述的分布式会议控制系统,其特征在于,所述一致性选择器中还包含转换单元,其用于:对所述会议号码执行哈希计算,获得哈希值,将所述哈希值对所述阵列单元总数取模,获得所述转换结果。13、根据第10至12项中的任意一项所述的分布式会议控制系统,还包括释放单元、迁移单元和更新单元;当减少所述会议控制服务器的数量时,所述释放单元用于将减少的所述会议控制服务器对应的所述阵列单元进行释放,获得释放出的阵列单元;所述遍历单元用于对现存的所述会议控制服务器进行再次轮流遍历所述释放出的阵列单元,使得每个所述释放出的阵列单元对应一个再次遍历后的会议控制服务器,并且所述现存的会议控制服务器在所述释放出的阵列单元中均匀分布;所述迁移单元用于对所述释放出的阵列单元对应的减少的会议控制服务器中数据执行迁移,使得所述数据被迁移到再次遍历后重新分配给该阵列单元的会议控制服务器;所述更新单元用于根据重新分配阵列单元的结果更新所述哈希阵列。14、根据第10至13项中的任意一项所述的分布式会议控制系统,还包括计算单元;当增加所述会议控制服务器的数量时,所述计算单元,其用于计算每个原有会议控制服务器需要释放出其所占用的所述阵列单元数量;所述释放单元,其用于根据释放的数量,将每个所述原有会议控制服务器释放出相应数量的所述阵列单元,获得释放出的阵列单元;所述遍历单元,其用于对增加的所述会议控制服务器进行再次轮流遍历所述释放出的阵列单元,使得每个所述释放出的阵列单元对应一个再次遍历后的会议控制服务器,并且所述增加的会议控制服务器在所述释放出的阵列单元中均匀分布;所述迁移单元,其用于对所述释放出的阵列单元对应的原有的会议控制服务器中数据执行迁移,使得所述数据被迁移到再次遍历后重新分配给该阵列单元的会议控制服务器;所述更新单元,其用于根据重新分配阵列单元的结果更新所述哈希阵列。15、根据第10至14项中的任意一项所述的分布式会议控制系统,其特征在于,所述一致性选择器被集成在一个或多个周边服务器;所述一个或多个周边服务器处理来自一个或多个会议的数据,所述数据均对应唯
一的会议号码。16、根据第13项或第14项所述的分布式会议控制系统,其特征在于,所述会议控制服务器基于会议控制服务器之间的相互发现机制来确定增加或减少的会议控制服务器。17、根据第13项、第14项或第16项所述的分布式会议控制系统,其特征在于,当所述会议控制服务器发现有增加或减少的其他会议控制服务器时,所述更新单元更新所述哈希阵列并将更新的哈希阵列发送给所有现有会议控制服务器和一致性选择器。18、根据第12项所述的分布式会议控制系统,其特征在于,所述转换单元包括哈希计算模块,其用于将所述会议号码作为一个字符串,用一个魔术字加上所述会议号码的每个字符对应的ascii码,形成一个数值,并对所述数值执行同样的位移及加减操作,输出一个整型哈希值。19、一种分布式会议控制方法,其特征在于,所述方法包括:对会议号码执行哈希计算,获得哈希值;对所述哈希值进行转换,获得转换结果;根据所述转换结果唯一地选择所述会议号码对应会议控制服务器。20、根据第19项所述的分布式会议控制方法,其特征在于,所述哈希计算将所述会议号码作为一个字符串,用一个魔术字加上所述会议号码的每个字符对应的ascii码,形成一个数值,并对所述数值执行同样的位移及加减操作,输出一个整型哈希值。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1