专利名称:一种消息调度方法及系统的制作方法
技术领域:
本发明属于网络通讯领域,尤其涉及一种消息调度方法及系统。
背景技术:
目前,在云会议中,所有用户都连接到同一个通信服务器上,导致通信服务器要处理大量的信息。若通信服务器不能在短时间内处理掉这些海量信息,则会导致用户长时间得不到响应,从而影响用户体验,甚至会导致视频会议逻辑出错,系统崩溃。此外,于通信服务器进行消息处理时,若所有用户都采用同一调度策略,则在高压情况下,会导致部分VIP用户得不到及时响应,从而影响用户体验
发明内容
本发明提供一种消息调度方法及系统,以解决上述问题。本发明提供一种消息调度方法。上述方法包括以下步骤服务器接收网络会议中客户端发送的消息,根据接收的所述消息携带的类型信息判断所述消息的类型,并根据所述消息所属的类型将所述消息放入对应的消息接收队列,并将消息接收队列的消息数目信息传输至控制器,其中,每个消息接收队列对应服务器的一组调度器及解析器;控制器根据消息接收队列的消息数目信息通过调控策略动态调控不同消息接收队列对应的调度器的数目;调度器调度对应的消息接收队列中的消息至对应的解析器,解析器解析处理所述消肩、O本发明还提供一种消息调度系统,包括客户端、服务器以及控制器。服务器包括接收器、调度器以及解析器。客户端连接服务器,服务器连接控制器。接收器连接调度器,调度器连接解析器。接收器,用于接收网络会议中客户端发送的消息,根据接收的所述消息携带的类型信息判断所述消息的类型,并根据所述消息所属的类型将所述消息放入对应的消息接收队列,并将消息接收队列的消息数目信息传输至控制器,其中,每个消息接收队列对应所述服务器的一组调度器及解析器。控制器,用于根据消息接收队列的消息数目信息通过调控策略动态调控不同消息接收队列对应的调度器的数目。调度器,用于调度对应的消息接收队列中的消息至对应的解析器。解析器,用于解析处理所述消息。相较于先前技术,根据本发明提供的消息调度方法及系统,服务器接收客户端发送的消息后,判断所述消息的类型,并根据消息的类型将所述消息放入对应的消息接收队列。如此,实现对消息的分类处理,从而提高关键消息的处理效率。此外,控制器根据调控策略动态调控调度器的数目,如此,当服务器的压力较大时,通过增加调度器的数目,有利于短时间内将消息全部调度完毕,从而提高服务器的性能。此外,当服务器的压力较小时,通过调控减少调度器的数目,释放系统资源。如此,不仅提高用户体验,而且提高系统稳定性。
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图I所示为根据本发明的较佳实施例提供的消息调度方法的流程图;图2所示为根据本发明的较佳实施例提供的消息调度系统的示意图。
具体实施例方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。图I所示为根据本发明的较佳实施例提供的消息调度方法的流程图。如图I所示,本发明的较佳实施例提供的消息调度方法包括步骤IOf 103。
于步骤101,服务器接收网络会议中客户端发送的消息,根据接收的所述消息携带的类型信息判断所述消息的类型,并根据所述消息所属的类型将所述消息放入对应的消息接收队列,并将消息接收队列的消息数目信息传输至控制器。其中,每个消息接收队列对应所述服务器的一组调度器及解析器。于本实施例中,于客户端向服务器发送所述消息之前,客户端通过查询企业用户信息表确定当前发送所述消息的企业用户所属的类别,并根据所述企业用户的类别确定所述企业用户发送的消息格式。其中,若服务器存储企业用户信息表,则客户端发送查询信息至服务器,服务器根据查询信息查询企业用户信息表,并将查询得到的企业用户的类别信息返回至客户端。然而,本发明并不限定所述企业用户信息表的存储位置。于其他实施例中,所述企业用户信息表亦可存储在客户端或者第三方存储装置上。于本实施例中,消息的类型例如包括一般消息以及关键消息。其中,一般消息的格式例如为〈root消息体/> ;关键消息的格式例如为〈key-policy>〈key-message消息体/X/key-policy〉。然而,本发明并不限定于此。于实际应用中,可根据需要设置一般消息以及关键消息的格式。以服务器存储企业用户信息表为例说明,首先,企业用户A的浏览器所在的客户端会向服务器发送查询信息。其中,查询信息包括企业用户A的企业编号。服务器接收查询信息后,查询其存储的企业用户信息表,并确定企业用户A的类别(例如,VIP企业用户)。其中,企业用户信息表例如包括所有企业用户的企业编号及类别信息。接着,服务器将查询得到的企业用户A的类别信息(S卩,VIP企业用户)返回至客户端。客户端接收所述服务器返回的信息后,确定企业用户A为VIP企业用户。于此,客户端确定以关键消息的格式传输企业用户A的消息。另外,若企业用户的类别为一般用户,则客户端以一般消息的格式传输所述企业用户的消息。其中,企业用户的类别以及消息类型的对应关系例如在客户端预先设置。本发明对此并不限定。此外,于本实施例中,服务器接收客户端发送的消息后,首先根据接收的消息携带的类型信息判断所述消息的类型,之后,根据所述消息所属的类型将所述消息放入对应的消息接收队列。于此,以一般消息及关键消息为例,服务器例如将一般消息放入消息接收队列a,将关键消息放入消息接收队列b。另外,每个消息接收队列对应服务器的一组调度器及解析器。具体而言,消息接收队列a例如对应一个或多个调度器以及一个或多个解析器,所述调度器将消息接收队列a中的消息调度至对应的解析器进行解析处理,消息接收队列b例如对应一个调度器以及一个解析器,所述调度器将消息接收队列b中的消息调度至对应的解析器进行解析处理。于此,服务器还实时将消息接收队列a及消息接收队列b的消息数目信息传输至控制器。然而,本发明并不限定于此。于其他实施例中,服务器亦可定时将消息接收队列a及消息接收队列b的消息数目信息传输至控制器。于步骤102,控制器根据消息接收队列的消息数目信息通过调控策略动态调控不同消息接收队列对应的调度器的数目。于本实施例中,所述控制器定时根据调控策略动态调控调度器的数目。然而,本发明并不限定于此。于实际应用中,控制器亦可实时根据调控策略动态调控调度器的数目。此外,于本实施例中,所述调控策略为设定消息最长调度时间以及消息最短调度时间,若当前数目的调度器无法在所述消息最长调度时间内调度对应的消息接收队列中的消息时,增加所述调度器的数目,若当前数目的调度器能够在所述消息最短调度时间内调度对应的消息接收队列中的消息时,减少所述调度器的数目。此外,控制器预设所述调度器的最大数目以及最小数目,所述调度器的数目在调控过程中不超过所述最大数目且不低于 所述最小数目。具体而言,控制器预设调度器的最大数目例如为10,最小数目例如为2。据此,在控制器动态调控调度器数目的过程中,调度器的数目应不超过10且不低于2。另外,控制器设定消息最长调度时间例如为2秒,消息最短调度时间例如为0. 5秒。如此,若当前数目的所述调度器无法在所述消息最长调度时间(即,2秒)内调度对应的消息接收队列中的消息,则增加调度器的数目;若当前数目的所述调度器能够在所述消息最短调度时间(即,0. 5秒)内调度对应的消息接收队列中的消息,则减少所述调度器的数目。关于调度器数目的增加及减小的过程具体如下所述。以步骤101中的消息接收队列a为例,消息接收队列a中尚未被调度的消息总数设为C,消息接收队列a对应的每个调度器I秒内能调度的消息数设为d,且当前对应消息接收队列a的调度器数目设为e。据此,比较c及d*e*2的大小,若c大于d*e*2,则说明当前的调度器数目不能在2秒(即,消息最长调度时间)内将消息接收队列a中的消息全部调度完毕,此时,需要增加调度器的数目。具体而言,计算(c-d*e*2)/d*2的大小,并将获得的结果四舍五入后用m表示,其中,m取为整数。若m+e>10,则增加的调度器的数目为10_e,若m+e ( 10,则增加的调度器数目为m。另外,比较d*e/2及c的大小,若d*e/2大于C,则说明当前调度器的数目能在0. 5秒(即,消息最短调度时间)内将消息接收队列a中的消息全部调度完毕,此时,需要减少调度器的数目。具体而言,若当前调度器的数目只剩下2 (即,e=2),则不减少调度器的数目,若e>2,则减少的调度器的数目固定为1,即每次只减少一个调度器,如此,防止一次减少多个调度器而导致性能下降。于另一较佳实施例中,所述调控策略为若相应的消息接收队列中未被调度的消息总数大于预设时间内当前数目的调度器所能调度的消息总数,则获取所述消息接收队列中未被调度的消息总数与预设时间内当前数目的调度器所能调度的消息总数的差值,并计算所述差值与所述消息接收队列中未被调度的消息总数的比值,若所述比值小于或等于预设值,则增加所述调度器的数目,若所述消息接收队列中未被调度的消息总数小于预设时间内当前数目的调度器所能调度的消息总数,则减少所述调度器的数目。此外,控制器预设所述调度器的最大数目以及最小数目,所述调度器的数目在调控过程中不超过所述最大数目且不低于所述最小数目。以步骤101中的消息接收队列a为例,控制器预设对应消息接收队列a的调度器的最大数目例如为10,最小数目例如为2。在控制器动态调控调度器数目的过程中,调度器的数目应不超过最大数目(即,10)且不低于最小数目(即,2)。另外,消息接收队列a中尚未被调度的消息总数设为C,对应消息接收队列a的每个调度器预设时间t内能调度的消息数设为d,且当前的调度器数目设为e。据此,比较c及d*e*t的大小,若c大于d*e*t,计算(c-d*e*t)/c的大小,若所述比值小于或等于阈值,则需要增加调度器的数目。具体而言,计算(c-d*e*t)/d*t的大小,并将获得的结果四舍五入后用m表示,其中,m取为整数。若m+e>10,则增加的调度器的数目为10-e,若m+e ( 10,则增加的调度器数目为m。另外,若d*e*t大于C,则需要减少调度器的数目。具体而言,若当前调度器的数目只剩下2 (即,e=2),则不减少调度器的数目;若62,则计算(d*e*t-c)/(d*t)的大小 ,并将获得的结果四舍五入后用n表示,此时,若e-n < 2,则减少的调度器的数目为e_2,若e-n>2,则减少的调度器的数目为n。于再一较佳实施例中,所述调控策略为设定调度器的最大调度消息数目,若当前数目的所述调度器以最大调度消息数目进行消息调度时无法调度对应的消息接收队列中的所有消息,增加所述调度器的数目,若当前数目的所述调度器能够以最大调度消息数目调度对应的消息接收队列中的消息,则减少所述调度器的数目。此外,控制器预设所述调度器的最大数目以及最小数目,所述调度器的数目在调控过程中不超过所述最大数目且不低于所述最小数目。以步骤101中的消息接收队列a为例,控制器预设对应消息接收队列a的调度器的最大数目例如为10,最小数目例如为2。据此,在控制器动态调控调度器数目的过程中,调度器的数目应不超过最大数目(即,10)且不低于最小数目(S卩,2)。另外,控制器设定对应消息接收队列a的每个调度器的最大调度消息数目P,当前消息接收队列a中尚未被调度的消息总数为C,当前调度器的数目为e,此时,若c>p*e,计算(c-p*e)/p,并将获得的结果四舍五入后用s表示。若s+e>10,则增加的调度器的数目为10-e,若s+e ( 10,则增加的调度器的数目为S。若a*e>c,计算(a*e-c)/a,并将获得的结果四舍五入后用r表示,若e-r ( 2,则减少的调度器的数目为e_2,若e-r>2,则减少的调度器的数目为r。于步骤103,所述调度器调度对应的消息接收队列中的消息至对应的解析器,所述解析器解析处理所述消息。具体而言,调度器将消息接收队列中的消息调度至解析器后,解析器解析每个消息的数据,并根据解析得到的数据对所述消息做相应的处理。于本实施例中,一般消息的消息接收队列中的消息经调度器调度至对应的解析器后,解析器会解析所述消息属于哪个企业,并根据解析结果将所述消息放入其所属企业的消息队列。之后,批量调度器会将企业消息队列中的消息批量调度至消息分发器。消息分发器会将相应的消息发送给对应企业的业务逻辑控制装置。业务逻辑控制装置接收到消息后,解析该消息,并判断该消息属于主界面还是属于会议界面,如果属于主界面则将该消息发送给主界面业务逻辑处理装置;如果属于会议界面,则将该消息发送给会议界面处理装置。另外,关键消息的消息接收队列中的消息经调度器调度至对应的解析器后,解析器会解析所述消息属于哪个企业,并将所述消息发送至分发器。分发器根据所述消息所属的企业信息将所述消息发送至对应企业的业务逻辑控制装置。业务逻辑控制装置接收到消息后,解析该消息,并判断该消息属于主界面还是属于会议界面,如果属于主界面则将该消息发送给主界面业务逻辑处理装置;如果属于会议界面,则将该消息发送给会议界面处理装置。然而,本发明并不限定于此。于其他实施例中,关键消息的消息接收队列中的消息处理方式亦可与一般消息的消息接收队列中的消息处理方式一致。图2所示为根据本发明的较佳实施例提供的消息处理系统的示意图。如图2所示,本发明的较佳实施例提供的消息处理系统包括客户端20、服务器22以及控制器24。服务器22包括接收器220、调度器224a 224b以及解析器226a 226b。客户端20连接服务器22、月艮务器22连接控制器24,接收器220连接调度器224a 224b,调度器224a连接解析器226a,调度器224b连接解析器226b。接收器220,用于接收网络会议中客户端20发送的消息,根据接收的所述消息携带的类型信息判断所述消息的类型,并根据所述消息所属的类型将所述消息放入对应的消息接收队列,并将消息接收队列的消息 数目信息传输至控制器24,其中,每个消息接收队列对应所述服务器22的一组调度器及解析器。于此,例如,消息接收队列a对应调度器224a及解析器226a,消息接收队列b对应调度器224b及解析器226b。然而,本发明并不限定于此。控制器24,用于根据消息接收队列的消息数目信息通过调控策略动态调控不同消息接收队列对应的调度器224a 224b的数目。调度器224a,用于调度消息接收队列a中的消息至解析器226a。调度器224b,用于调度消息接收队列b中的消息至解析器226b。解析器226a 226b,用于解析处理所述消息。于本实施例中,所述调控策略为设定消息最长调度时间以及消息最短调度时间,若当前数目的所述调度器无法在所述消息最长调度时间内调度对应的消息接收队列中的消息时,增加所述调度器的数目,若当前数目的所述调度器能够在所述消息最短调度时间内调度对应的消息接收队列中的消息时,减少所述调度器的数目。然而,本发明并不限定于此。于其他实施例中,所述调控策略可为若相应的消息接收队列中未被调度的消息总数大于预设时间内当前数目的调度器所能调度的消息总数,则获取所述消息接收队列中未被调度的消息总数与预设时间内当前数目的调度器所能调度的消息总数的差值,并计算所述差值与所述消息接收队列中未被调度的消息总数的比值,若所述比值小于或等于预设值,则增加所述调度器的数目,若所述消息接收队列中未被调度的消息总数小于预设时间内当前数目的调度器所能调度的消息总数,则减少所述调度器的数目。或者,所述调控策略可为设定所述调度器的最大调度消息数目,若当前数目的所述调度器以最大调度消息数目进行消息调度时无法调度对应的消息接收队列中的所有消息,增加所述调度器的数目,若当前数目的所述调度器能够调度对应的消息接收队列中的消息,则减少所述调度器的数目。此外,关于上述系统的具体操作过程同上述方法所述,故于此不再赘述。综上所述,根据本发明较佳实施例提供的消息调度方法及系统,服务器接收客户端发送的消息后,判断所述消息的类型,并根据消息的类型将所述消息放入对应的消息接收队列。如此,实现对消息的分类处理,从而提高关键消息的处理效率。此外,控制器根据调控策略动态调控调度器的数目,如此,当服务器的压力较大时,通过增加调度器的数目,有利于短时间内将消息全部调度完毕,从而提高服务器的性能。此外,当服务器的压力较小时,通过调控减少调度器的数目,释放系统资源。如此,不仅提高用户体验,而且提高系统稳定性。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明 的保护范围之内。
权利要求
1.ー种消息调度方法,其特征在于,包括以下步骤 服务器接收网络会议中客户端发送的消息,根据接收的所述消息携帯的类型信息判断所述消息的类型,井根据所述消息所属的类型将所述消息放入对应的消息接收队列,并将所述消息接收队列的消息数目信息传输至控制器,其中,每个消息接收队列对应所述服务器的一组调度器及解析器; 所述控制器根据所述消息接收队列的消息数目信息通过调控策略动态调控不同消息接收队列对应的调度器的数目; 所述调度器调度对应的消息接收队列中的消息至对应的所述解析器,所述解析器解析处理所述消息。
2.根据权利要求I所述的方法,其特征在于,于所述客户端向所述服务器发送所述消息之前,所述客户端通过查询企业用户信息表确定当前发送所述消息的企业用户所属的类另O,并根据所述企业用户的类别确定所述企业用户发送的消息格式。
3.根据权利要求2所述的方法,其特征在于,若所述服务器存储所述企业用户信息表,则所述客户端发送查询信息至所述服务器,所述服务器根据所述查询信息查询所述企业用户信息表,并将查询得到的企业用户的类别信息返回至所述客户端。
4.根据权利要求I所述的方法,其特征在于,所述调控策略为设定消息最长调度时间以及消息最短调度时间,若当前数目的所述调度器无法在所述消息最长调度时间内调度对应的消息接收队列中的消息吋,増加所述调度器的数目,若当前数目的所述调度器能够在所述消息最短调度时间内调度对应的消息接收队列中的消息时,減少所述调度器的数目。
5.根据权利要求I所述的方法,其特征在于,所述调控策略为若相应的消息接收队列中未被调度的消息总数大于预设时间内当前数目的调度器所能调度的消息总数,则获取所述消息接收队列中未被调度的消息总数与预设时间内当前数目的调度器所能调度的消息总数的差值,并计算所述差值与所述消息接收队列中未被调度的消息总数的比值,若所述比值小于或等于预设值,则增加所述调度器的数目,若所述消息接收队列中未被调度的消息总数小于预设时间内当前数目的调度器所能调度的消息总数,则减少所述调度器的数目。
6.根据权利要求I所述的方法,其特征在于,所述调控策略为设定所述调度器的最大调度消息数目,若当前数目的所述调度器以最大调度消息数目进行消息调度时无法调度对应的消息接收队列中的所有消息,増加所述调度器的数目,若当前数目的所述调度器能够以最大调度消息数目调度对应的消息接收队列中的消息,则减少所述调度器的数目。
7.根据权利要求4、5或6所述的方法,其特征在于,所述控制器预设所述调度器的最大数目以及最小数目,所述调度器的数目在调控过程中不超过所述最大数目且不低于所述最小数目。
8.根据权利要求I所述的方法,其特征在于,所述控制器定时根据调控策略动态调控所述调度器的数目。
9.ー种消息调度系统,其特征在于,包括客户端、服务器及控制器,所述服务器包括接收器、调度器以及解析器,所述客户端连接所述服务器,所述服务器连接所述控制器,所述接收器连接所述调度器,所述调度器连接所述解析器, 所述接收器,用于接收网络会议中客户端发送的消息,根据接收的所述消息携帯的类型信息判断所述消息的类型,并根据所述消息所属的类型将所述消息放入对应的消息接收队列,并将所述消息接收队列的消息数目信息传输至所述控制器,其中,每个消息接收队列对应所述服务器的一组调度器及解析器, 所述控制器,用于根据所述消息接收队列的消息数目信息通过调控策略动态调控不同消息接收队列对应的所述调度器的数目, 所述调度器,用于调度对应的所述消息接收队列中的消息至对应的所述解析器, 所述解析器,用于解析处理所述消息。
10.根据权利要求9所述的系统,其特征在于,所述调控策略为设定消息最长调度时间以及消息最短调度时间,若当前数目的所述调度器无法在所述消息最长调度时间内调度对应的消息接收队列中的消息时,增加所述调度器的数目,若当前数目的所述调度器能够在所述消息最短调度时间内调度对应的消息接收队列中的消息时,减少所述调度器的数目。
全文摘要
本发明提供一种消息调度方法及系统。上述方法包括以下步骤服务器接收网络会议中客户端发送的消息,根据接收的所述消息携带的类型信息判断所述消息的类型,并根据所述消息所属的类型将所述消息放入对应的消息接收队列,并将消息接收队列的消息数目信息传输至控制器,其中,每个消息接收队列对应服务器的一组调度器及解析器;控制器根据消息接收队列的消息数目信息通过调控策略动态调控不同消息接收队列对应的调度器的数目;调度器调度对应的消息接收队列中的消息至对应的解析器,解析器解析处理所述消息。
文档编号H04L12/18GK102685235SQ20121014905
公开日2012年9月19日 申请日期2012年5月15日 优先权日2012年5月15日
发明者胡加明 申请人:苏州阔地网络科技有限公司