一种消息处理的方法及系统技术方案

技术编号:13290017 阅读:56 留言:0更新日期:2016-07-09 08:49
本发明专利技术涉及通信技术领域,提供了一种消息处理的方法及系统,旨在解决现有技术的消息分发系统中单个消息服务器只能服务有限用户量的问题。所述方法包括:管理模块实时监测用户接入量是否超过阈值,当监测到所述用户接入量超过所述阈值时,在连接服务模块群组中新增并启动新增的连接服务模块;所述连接服务模块群组接收客户端发送的消息,并将所述消息通过通信模块转发给消息处理模块;所述消息处理模块对所述消息进行处理。本发明专利技术提供的技术方案实现了在同一信道上可横向扩展支持无限度的用户连接,具有高可用性,同时通过连接服务模块与消息处理模块分离的方式,实现客户端连接和逻辑处理完全分离,具有高灵活性。

【技术实现步骤摘要】

本专利技术涉及通信
,尤其涉及一种消息处理的方法及系统
技术介绍
现有的常用HTML5协议可以使客户端和服务器之间形成一条快速通道,直接进行数据传送,大大地提高了客户端与服务器之间的即时通讯效率。在一些对消息处理和转发的实时性要求较高的应用中,例如支持网页的即时聊天工具、实时同步白板和网页游戏等,通常都需要有一个消息服务器来负责消息的处理和转发。但单个消息服务器只能服务有限用户量,当大量用户同时在线,并且每一条消息都需要进行处理和转发给所有用户时,随着用户数量的增长,消息服务器往往会因为难以支撑大量的用户而导致无法提供服务。例如,对于实时同步白板的应用,如果同时在线用户有1000个,并且其中一个用户A正在以正常书写速度在白板上画一条横线,为了让其余999个用户可以实时看到这条横线的绘制过程,用户A书写的每一个点都需要以消息的方式通过消息服务器发送给其余999个用户,假设以正常书写速度每秒可以发送20条消息,则消息服务器每秒需要发送20000条消息,如果所有的消息都通过单一的消息服务器来转发,则该消息服务器的负载为20n/s,其中n为同时在线的用户数量,可见消息服务器的负载与同时在线的用户数量成正比,当同时在线的用户数量超出了消息服务器所能承载的极限时,该消息服务器可能会因为超载而无法提供服务。同时,消息转发之前往往还需要对消息进行必要的处理,例如存储、数据转换等,这些操作会进一步增加消息服务器的负荷,降低单台消息服务器的消息转发能力。
技术实现思路
本专利技术的目的在于提供一种消息处理的方法和系统,旨在解决现有技术中的消息分发系统中单个消息服务器只能服务有限用户量的问题。本专利技术的第一方面,提供一种消息处理的方法,包括:管理模块实时监测用户接入量是否超过阈值,当监测到所述用户接入量超过所述阈值时,在连接服务模块群组中新增并启动新增的连接服务模块;所述连接服务模块群组接收客户端发送的消息,并将所述消息通过通信模块转发给消息处理模块;所述消息处理模块对所述消息进行处理。本专利技术的第二方面,提供一种消息处理的系统,包括客户端、管理模块、连接服务模块群组、通信模块和消息处理模块;所述管理模块,用于实时监测用户接入量是否超过阈值,当监测到所述用户接入量超过所述阈值时,在所述连接服务模块群组中新增并启动新增的连接服务模块;所述连接服务模块群组,用于接收所述客户端发送的消息,并将所述消息通过所述通信模块转发给消息处理模块;所述消息处理模块,用于对所述消息进行处理。本专利技术与现有技术相比存在的有益效果是:通过管理模块实时监测用户接入量是否超过阈值,当监测到所述用户接入量超过所述阈值时,在连接服务模块群组中新增并启动新增的连接服务模块,该连接服务模块可以支持一定的用户接入量,每个连接服务模块只需要向其所接入的用户发送消息,避免了单台消息服务器由于用户数量增加而超载的情况,从而可以实现在同一信道上用户接入量的无限度横向扩展,具有高可用性;同时,连接服务模块群组将接收到的客户端消息通过通信模块发送给消息处理模块进行处理,通过连接服务模块与消息处理模块分离的方式,将消息分发和消息处理分别在不同的模块完成,可以最大限度的增加消息分发能力,并且当新增业务时只需在消息处理模块完成,对保持连接的客户端用户透明,从而实现客户端连接和逻辑处理完全分离,具有高灵活性。附图说明图1是本专利技术实施例一提供的消息处理的方法的流程图;图2是本专利技术实施例二提供的消息处理的方法的流程图;图3是本专利技术实施例二提供的应用消息处理的方法的网络结构示意图;图4是本专利技术实施例三与实施例四提供的消息处理的系统的结构示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。以下结合具体附图对本专利技术的实现进行详细的描述。实施例一:图1是本专利技术实施例一提供的消息处理的方法的流程图,具体包括步骤S101至S103,详述如下:S101、管理模块实时监测用户接入量是否超过阈值,当监测到用户接入量超过阈值时,在连接服务模块群组中新增并启动新增的连接服务模块。具体地,管理模块可以是一个独立的管理进程,也可以是一台管理服务器。连接服务模块群组包含若干个连接服务模块,连接服务模块作为服务节点,可以是一个独立的服务进程,也可以是一台服务器,可以同时开启多个服务进程或者多台服务器提供服务。单个连接服务模块可以支持的用户接入量有限,管理模块实时检测连接服务模块的用户接入量是否超过其阈值,即所能支持用户接入量的上限。当管理模块监测到连接服务模块的用户接入量超过阈值时,新增一个连接服务模块并启动该新增的连接服务模块,使得超过阈值的接入用户可以通过该新增的连接服务模块接入。S102、连接服务模块群组接收客户端发送的消息,并将该消息通过通信模块转发到消息处理模块。具体地,客户端可以通过代理服务器与连接服务模块群组中的连接服务模块连接。客户端将需要发送的消息通过代理服务器发送给连接服务模块,连接服务模块将该消息通过通信模块转发给消息处理模块进行处理。通信模块负责连接服务模块与消息处理模块之间的消息通信。通信模块可以是一个独立的通信进程,也可以是一台通信服务器。进一步地,通信模块可以提供发布/订阅(pub/sub)服务,用以完成连接服务模块与消息处理模块之间的消息通信。S103、消息处理模块对该消息进行处理。具体地,消息处理模块是与连接服务模块分离的模块,可以是一个独立的消息处理进程,也可以是一台消息处理服务器。消息处理模块可以根据业务逻辑的需要,对接收到的消息进行处理,例如对用户认证、进行数据存储等处理。由于消息处理模块与连接服务模块完全分离,因此当需要新增业务逻辑时,只需要在消息处理模块完成,连接服务模块、通信模块、以及客户端这些节点都不需要进行任何变动,对接入的用户来说完全透明。采用本实施例提供的方法,每当管理模块监测到用户接入量超过连接服务模块所能承载的极限时,就会添加一个新的连接服务模块作为服务节点,该服务节点可以支持一定数量的用户接入量,每个服务节点只需要向其所接入的用户发送消息,避免了单台消息服务器由于用户数量增加而超载的情况,可以实现在同一信道上用户接入量的无限度横向扩展。同时,消息处理模块本文档来自技高网
...

【技术保护点】
一种消息处理的方法,其特征在于,包括:管理模块实时监测用户接入量是否超过阈值,当监测到所述用户接入量超过所述阈值时,在连接服务模块群组中新增并启动新增的连接服务模块;所述连接服务模块群组接收客户端发送的消息,并将所述消息通过通信模块转发给消息处理模块;所述消息处理模块对所述消息进行处理。

【技术特征摘要】
1.一种消息处理的方法,其特征在于,包括:
管理模块实时监测用户接入量是否超过阈值,当监测到所述用户接入量超
过所述阈值时,在连接服务模块群组中新增并启动新增的连接服务模块;
所述连接服务模块群组接收客户端发送的消息,并将所述消息通过通信模
块转发给消息处理模块;
所述消息处理模块对所述消息进行处理。
2.根据权利要求1所述的消息处理的方法,其特征在于,所述将所述消息
通过通信模块转发给消息处理模块包括:
通过发布/订阅服务将所述消息通过通信模块转发给消息处理模块。
3.根据权利要求1所述的消息处理的方法,其特征在于,所述消息处理模
块对所述消息进行处理之后,还包括:
所述消息处理模块将处理结果及所述处理结果的接收方的标识信息通过消
息分发指令返回给所述通信模块;
所述通信模块根据所述标识信息,从连接服务模块群组中确定目标连接服
务模块,将所述消息分发指令发送给所述目标连接服务模块,以便所述目标连
接服务模块将所述处理结果返回给目标客户端。
4.根据权利要求3所述的消息处理的方法,其特征在于,所述将所述消息
分发指令发送给所述目标连接服务模块包括:
通过发布/订阅服务将所述消息分发指令发送给所述目标连接服务模块。
5.根据权利要求1所述的消息处理的方法,其特征在于,所述连接服务模
块群组接收客户端发送的消息之前,还包括:
所述连接服务模块群组建立并保持与所述...

【专利技术属性】
技术研发人员:张嘉宸
申请(专利权)人:深圳宸睿科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1