请求消息处理方法、聊天室消息服务器及聊天室系统与流程

文档序号:15743478发布日期:2018-10-23 22:41阅读:135来源:国知局
本发明涉及互联网领域,特别涉及一种请求消息处理方法、聊天室消息服务器及聊天室系统。
背景技术
:随着互联网技术的不断发展,直播类应用越来越多,在直播的过程中,用户可以通过发送请求消息和查看其他用户发送的请求消息实现在直播中的互动,因此,聊天室消息服务器如何对聊天室中的请求消息进行处理是非常重要的问题。相关技术中,聊天室系统只包括两层服务器架构,即连接管理服务器和聊天室服务器,连接管理服务器用于接收用户发送的请求消息,并根据请求消息中携带的聊天室身份标识(英文:Identity;简称:ID),将一个聊天室中的所有用户分发至一个聊天室服务器上,当聊天室中有请求消息产生时,聊天室服务器需要将该请求消息发送给该聊天室中的所有用户。这种构架当聊天室数目增多时,仅需要增加聊天室服务器的数量。但是,当某一聊天室的消息并发量很大或者在线用户十分多时,聊天室服务器就会出现性能瓶颈,即出现性能下降甚至崩溃的现象。技术实现要素:为了解决现有技术当需要被发送的消息的数量非常多时,聊天室服务器会出现性能下降甚至崩溃的现象的问题,本发明实施例提供了一种请求消息处理方法、聊天室消息服务器及聊天室系统。所述技术方案如下:第一方面,本发明实施例提供了一种聊天室系统,所述聊天室系统包括:多个客户端、至少一个连接管理服务器和聊天室分布式系统,所述聊天室分布式系统包括:至少一个聊天室服务器和至少一个的聊天室消息服务器;所述连接管理服务器用于管理所述客户端与所述聊天室分布式系统的连接;所述聊天室服务器用于执行同一聊天室的上行消息时间戳的生成,聊天室用户信息管理,聊天室数据的统计,聊天室消息禁言管理和敏感词过滤中的至少一种动作;所述聊天室消息服务器用于管理消息的分发。可选地,所述连接管理服务器用于接收所述多个客户端发送的第一请求消息;所述连接管理服务器还用于根据接收到的第一请求消息中的聊天室ID将多个第一请求消息分发至所述聊天室服务器;每个所述聊天室服务器用于广播多个第二请求消息,所述多个第二请求消息是所述多个第一请求消息中的请求消息;每个聊天室消息服务器用于根据接收到的第二请求消息中的聊天室ID,将所述接收到的第二请求消息发送至所述每个聊天室消息服务器所管理的目标用户所在的客户端,所述目标用户为登录目标聊天室的用户,所述目标聊天室为所述聊天室ID所指示的聊天室。可选地,所述每个聊天室消息服务器,具体用于:根据所述接收到的第二请求消息中的聊天室ID,将所述接收到的第二请求消息中携带相同的所述聊天室ID的第二请求消息,发送至所述目标用户所在的客户端;或者,将所述目标用户中除所述第二请求消息的消息发送用户之外的用户确定为更新后的目标用户,根据所述接收到的第二请求消息中的聊天室ID,将所述接收到的第二请求消息中携带相同的所述聊天室ID的第二请求消息,发送至所述更新后的目标用户所在的客户端。可选地,所述连接管理服务器用于接收所述多个客户端发送的注册请求,所述注册请求包括聊天室ID和用户ID;所述连接管理服务器用于根据所述聊天室ID,将多个注册请求分发至所述聊天室服务器;每个所述聊天室服务器用于根据所述用户ID,将接收到的注册请求分发至所述聊天室消息服务器;每个所述聊天室消息服务器用于将接收到的注册请求中的用户ID所指示的用户确定为所述聊天室消息服务器所管理的用户。可选地,所述聊天室分布式系统还包括:消息丢弃服务器,所述连接管理服务器用于根据所述第一请求消息中携带的用户ID,将所述多个第一请求消息分发至所述消息丢弃服务器;每个所述消息丢弃服务器用于根据第三请求中的聊天室ID,将多个第三请求消息中携带相同聊天室ID的第三请求消息发送至同一个聊天室服务器,所述多个第三请求消息是所述每个消息丢弃服务器基于丢弃周期内可通过消息个数阈值确定的允许通过的请求消息。第二方面,本发明实施例提供了一种第一聊天室消息服务器,所述第一聊天室消息服务器位于聊天室系统中,所述聊天室系统包括:多个客户端、至少一个的连接管理服务器和聊天室分布式系统,所述聊天室分布式系统包括:至少一个的聊天室服务器和至少一个的聊天室消息服务器;所述第一聊天室消息服务器,包括:第一接收模块,用于接收所述聊天室服务器广播的多个第二请求消息,所述多个第二请求消息是多个第一请求消息中的请求消息,所述多个第一请求消息为所述连接管理服务器接收所述多个客户端发送的第一请求消息后分发至所述聊天室服务器的;发送模块,用于根据接收到的第二请求消息中的聊天室ID,将所述接收到的第二请求消息发送至所述每个聊天室消息服务器所管理的目标用户所在的客户端,所述目标用户为登录目标聊天室的用户,所述目标聊天室为所述聊天室ID所指示的聊天室。可选地,所述发送模块,具体用于:根据接收到的第二请求消息中的聊天室ID,将所述接收到的第二请求消息中携带相同的所述聊天室ID的第二请求消息,发送至所述目标用户所在的客户端;或者,将所述目标用户中除所述第二请求消息的消息发送用户之外的用户确定为更新后的目标用户,根据所述接收到的第二请求消息中的聊天室ID,将所述接收到的第二请求消息中携带相同的所述聊天室ID的第二请求消息,发送至所述更新后的目标用户所在的客户端。可选地,所述第一聊天室消息服务器,还包括:第二接收模块,用于接收所述聊天室服务器根据所述聊天室ID分发的注册请求,所述注册请求为所述连接管理服务器接收所述多个客户端发送的注册请求后根据用户ID分发至所述聊天室服务器的,所述注册请求包括所述聊天室ID和所述用户ID;确定模块,用于将接收到的注册请求中的用户ID所指示的用户确定为所述聊天室消息服务器所管理的用户。第三方面,本发明实施例提供了一种请求消息处理方法,应用于聊天室系统,所述聊天室系统包括:多个客户端、至少一个连接管理服务器和聊天室分布式系统,所述聊天室分布式系统包括:至少一个聊天室服务器和至少一个聊天室消息服务器,所述方法包括:所述连接管理服务器管理所述客户端与所述聊天室分布式系统的连接;所述聊天室服务器执行同一聊天室的上行消息时间戳的生成,聊天室用户信息管理,聊天室数据的统计,聊天室消息禁言管理和敏感词过滤中的至少一种动作;所述聊天室消息服务器管理消息的分发。可选地,所述方法还包括:所述连接管理服务器接收所述多个客户端发送的第一请求消息;所述连接管理服务器根据接收到的第一请求消息中的聊天室ID将多个第一请求消息分发至所述聊天室服务器;每个所述聊天室服务器广播多个第二请求消息,所述多个第二请求消息是所述多个第一请求消息中的请求消息;每个聊天室消息服务器根据接收到的第二请求消息中的聊天室ID,将所述接收到的第二请求消息发送至所述每个聊天室消息服务器所管理的目标用户所在的客户端,所述目标用户为登录目标聊天室的用户,所述目标聊天室为所述聊天室ID所指示的聊天室。本发明实施例提供的技术方案带来的有益效果是:本发明实施例提供的请求消息处理方法、聊天室消息服务器及聊天室系统,通过每个聊天室消息服务器根据接收到的第二请求消息中的聊天室ID,将接收到的第二请求消息中携带相同的目标聊天室ID的第二请求消息发送至每个聊天室消息服务器所管理的登录目标聊天室的用户所在客户端,使多个聊天室消息服务器共同负责同一聊天室的消息发送任务,即多个聊天室消息服务器分别将同一聊天室中的请求消息发送至各自管理的登录同一聊天室的不同用户所在客户端,相对于现有技术,无需使一个聊天室消息服务器独自承担同一聊天室的所有请求消息的发送任务,减轻了聊天室消息服务器的负担,减少了需要发送的过多的请求消息对聊天室消息服务器性能的影响,避免了聊天室消息服务器的崩溃。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1-1是本发明部分实施例中提供的请求消息处理方法所涉及的一种聊天室系统的结构示意图;图1-2是本发明部分实施例中提供的请求消息处理方法所涉及的另一种聊天室系统的结构示意图;图2是本发明实施例提供的一种请求消息处理方法的流程图;图3是本发明实施例提供的一种第一聊天室消息服务器的结构示意图;图4是本发明实施例提供的另一种第一聊天室消息服务器的结构示意图。具体实施方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。通过劳动,技术人员发现,在聊天室系统中消息分发是最耗费系统资源的行为,例如,100人的聊天室,每个人发一条消息,都要分发给其他99人,那么消息分发次数为9900。而直播聊天室的特点是用户量大(一般无上限),消息并发高。为此,本发明提出了一种请求消息处理方法、聊天室消息服务器及聊天室系统。请参见图1-1,其示出了本发明部分实施例中提供的请求消息处理方法所涉及的聊天室系统的示意图。该聊天室系统可以应用于直播领域,可以包括:客户端110、至少一个连接管理服务器120、至少一个聊天室服务器130和至少一个聊天室消息服务器140,该至少一个聊天室服务器130和至少一个聊天室消息服务器140可以构成聊天室分布式系统。其中,客户端110可以用于发出消息,连接管理服务器120可以用于管理客户端110与聊天室分布式系统的连接,聊天室服务器130可以用于执行同一聊天室的上行消息时间戳的生成,聊天室用户信息管理,聊天室数据的统计,聊天室消息禁言管理和敏感词过滤中的至少一种动作,聊天室消息服务器140可以用于管理消息的分发。客户端110安装在能够发送消息的智能手机、电脑、多媒体播放器、电子阅读器、可穿戴式设备等终端上,该客户端可以为直播客户端。连接管理服务器120、聊天室服务器130和聊天室消息服务器140均可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。客户端110与连接管理服务器120之间、连接管理服务器120与至少一个聊天室服务器130之间、连接管理服务器120与至少一个聊天室消息服务器140之间以及至少一个聊天室服务器130与至少一个聊天室消息服务器140之间均可以通过有线网络或无线网络建立连接。需要说明的是,为了对连接管理服务器120发出的消息进行筛选,以减轻聊天室服务器130的负担,聊天室分布式系统中还可以包括消息丢弃服务器150,相应的,聊天室系统对应的结构示意图请参考图1-2。其中,消息丢弃服务器150可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。消息丢弃服务器150与连接管理服务器120之间以及消息丢弃服务器150与至少一个聊天室服务器130之间均可以通过有线网络或无线网络建立连接。消息丢弃服务器150用于接收连接管理服务器120分发的消息,采用预设的丢弃策略对接收到的部分消息进行丢弃,以实现对连接管理服务器120发出的消息的筛选,并将通过的消息分发至至少一个聊天室服务器130。图1-2中其他服务器中的工作原理可以相应参考图1-1中的对应服务器,此处不再赘述。具体地,图1-1和图1-2所示的聊天室系统中各个服务器的工作原理请参考图2,图2为本发明实施例提供的一种请求消息处理方法的流程图,该方法以应用于图1-2所示的聊天室系统为例,对请求消息处理方法进行说明,请求消息处理方法应用于图1-1所示的聊天室系统时,各服务器的工作原理可以相应参考本发明实施例中各服务器的工作原理。并且,由于在实际应用中,聊天室系统中的至少一个聊天室服务器通常包括多个聊天室服务器,至少一个聊天室消息服务器通常包括多个聊天室消息服务器,本发明实施例在图2中以第一聊天室服务器、第一聊天室消息服务器和第一消息丢弃服务器为例进行说明,该第一聊天室服务器为至少一个聊天室服务器130中的任一个,该第一聊天室消息服务器为至少一个聊天室消息服务器140中的任一个,该第一消息丢弃服务器为多个消息丢弃服务器150中的任一个。其他聊天室服务器的动作可以参考该第一聊天室服务器,其他聊天室消息服务器的动作可以参考该第一聊天室消息服务器,其他消息丢弃服务器的动作可以参考该第一消息丢弃服务器,如图2所示,该方法包括:步骤201、连接管理服务器接收多个客户端发送的注册请求。其中,注册请求包括聊天室身份标识(英文:Identity;简称:ID)和用户ID,该注册请求是用户通过客户端发送的请求加入聊天室的加入请求,聊天室ID用以唯一标识用户请求加入的目标聊天室,用户ID用于唯一标识发出加入请求的用户。示例地,假设在某一时间段内,聊天室系统中的某个连接管理服务器共接收到了9个客户端发送的注册请求,该9个注册请求的注册请求标识与用户ID和聊天室ID的对应关系请参见表1。表1注册请求标识用户ID聊天室ID01客户端11聊天室2102客户端12聊天室2203客户端13聊天室2304客户端14聊天室2405客户端15聊天室2106客户端16聊天室2107客户端17聊天室2108客户端18聊天室2109客户端19聊天室21根据表1可知:该9个注册请求包括的聊天室ID和用户ID分别为:注册请求01包括客户端11和聊天室21、注册请求02包括客户端12和聊天室22、注册请求03包括客户端13和聊天室23、注册请求04包括客户端14和聊天室24、注册请求05包括客户端15和聊天室21、注册请求06包括客户端16和聊天室21、注册请求07包括客户端17和聊天室21、注册请求08包括客户端18和聊天室21、注册请求09包括客户端19和聊天室21。步骤202、连接管理服务器根据聊天室ID,将多个注册请求分发至聊天室服务器。连接管理服务器将多个注册请求分发至至少一个聊天室服务器的过程可以包括:连接管理服务器将每个注册请求中携带的聊天室ID作为负载均衡算法的键,得到多个值,并根据该多个值,将多个注册请求分发至对应的聊天室服务器。可选地,该负载均衡算法可以为一致性哈希算法,也即是,可以将每个注册请求中携带的聊天室ID作为一致性哈希算法的键,并根据得到的哈希值将多个注册请求分发至对应的聊天室服务器。示例地,假设聊天室系统中包括有4个聊天室服务器,在某一时间段内,聊天室系统中的某个连接管理服务器共接收到了9个注册请求,该9个注册请求为步骤201示例中的9个注册请求,将该9个注册请求中携带的聊天室ID作为一致性哈希算法的键,再根据得到的哈希值可以将该9个注册请求分发至4个聊天室服务器,可以得到:将注册请求01、注册请求05、注册请求06、注册请求07、注册请求08和注册请求09分发至聊天室服务器1,将注册请求02分发至聊天室服务器2,将注册请求03分发至聊天室服务器3,将注册请求04分发至聊天室服务器4。需要说明的是,将每个注册请求中携带的聊天室ID作为负载均衡算法的键,是为了将向同一聊天室发送的注册请求分发至同一个聊天室服务器,以便于对同一聊天室的用户进行统计、管理和存储等处理,以及在后续的消息发送过程中,处理同一聊天室中请求消息的禁言、敏感词过滤、数据统计和生成请求消息对应的唯一的时间戳等处理。步骤203、第一聊天室服务器根据用户ID,将接收到的注册请求分发至聊天室消息服务器。该步骤中第一聊天室服务器根据用户ID将接收到的注册请求分发至聊天室消息服务器的动作,可以参考步骤202中连接管理服务器根据聊天室ID将多个注册请求分发至聊天室服务器的动作,此处不再赘述。示例地,假设聊天室系统中包括有3个聊天室消息服务器,3个聊天室消息服务器分别为聊天室消息服务器1、聊天室消息服务器2和聊天室消息服务器3,在某一时间段内,聊天室服务器1(即第一聊天室服务器)共接收到了6个注册请求,该6个注册请求分别为注册请求01、注册请求05、注册请求06、注册请求07、注册请求08和注册请求09,该6个注册请求包括的用户ID分别为客户端11、客户端15、客户端16、客户端17、客户端18和客户端19,将该6个注册请求中携带的用户ID作为一致性哈希算法的键,再根据得到的哈希值可以将该6个注册请求分发至3个聊天室消息服务器,即得到:将注册请求01和注册请求05分发至聊天室消息服务器1,将注册请求06和注册请求07分发至聊天室消息服务器2,将注册请求08和注册请求09分发至聊天室消息服务器3。在该步骤中,将每个注册请求中携带的用户ID作为负载均衡算法的键是为了将同一聊天室中的用户比较均匀地分配到多个聊天室消息服务器,这样可以使多个聊天室消息服务器在后续消息发送过程中共同负责同一聊天室的消息发送任务,也即是,使多个聊天室消息服务器中的每个服务器将同一聊天室中的消息发送至各自对应的用户所在的客户端,这样的请求消息处理方法相对于现有技术,无需使一个聊天室消息服务器独自承担同一聊天室的所有请求消息的发送任务,即使在需要发送的消息的总量很大的情况下,由于多个聊天室消息服务的分担,使得分配到每个聊天室消息服务器的请求消息的发送任务相对减少,可以相应地减轻聊天室消息服务器的负担,减少对聊天室消息服务器性能的影响,当需要被发送的消息的数量非常多时,这种作用表现的尤其明显,甚至能够避免聊天室消息服务器的崩溃。进一步地,若聊天室用户数量进一步增加或消息并发量更大,导致聊天室系统可能出现性能瓶颈时,通过增加聊天室消息服务器的数量即可避免聊天室系统的崩溃,而无需更改聊天室系统的构架。步骤204、第一聊天室消息服务器将接收到的注册请求中的用户ID所指示的用户确定为第一聊天室消息服务器所管理的用户。每个聊天室服务器根据用户ID将其接收到的注册请求分发至至少一个聊天室消息服务器后,第一聊天室消息服务器可以接收到向其分发的注册请求,并将接收到的注册请求对应的用户确定为其所管理的用户,在后续的消息发送过程中,第一聊天室消息服务器负责其管理的用户的消息的发送任务。因此,第一聊天室消息服务器需要将接收到的注册请求中的用户ID所指示的用户确定为其管理的用户。示例地,假设聊天室消息服务器1接收到的注册请求为注册请求01和注册请求05,聊天室消息服务器2接收到的注册请求为注册请求06和注册请求07,聊天室消息服务器3接收到的注册请求为注册请求08和注册请求09,其中,注册请求01所指示的用户为用户31,注册请求05所指示的用户为用户35,注册请求06所指示的用户为用户36,注册请求07所指示的用户为用户37,注册请求08所指示的用户为用户38,注册请求09所指示的用户为用户39,则聊天室消息服务器1可以将用户31和用户35确定为其管理的用户,聊天室消息服务器2可以将用户36和用户37确定为其管理的用户,聊天室消息服务器3可以将用户38和用户39确定为其管理的用户。步骤205、连接管理服务器接收多个客户端发送的第一请求消息。可选地,多个客户端中的每个客户端均可以发送多条消息。因此,连接管理服务器接收的第一请求消息为多个客户端中每个客户端发送的多条消息的集合。示例地,假设在某段时间内,连接管理服务器共接收了6个客户端发送的第一请求消息,该6个客户端分别为客户端11、客户端12、客户端13、客户端14、客户端15和客户端16,其中,客户端11发送了2个第一请求消息,客户端12发送了3个第一请求消息,客户端13发送了5个第一请求消息,客户端14发送了2个第一请求消息,客户端15发送了4个第一请求消息,客户端16发送了3个第一请求消息,则连接管理服务器共接收了6个客户端发送的2+3+5+2+4+3=19个第一请求消息。需要说明的是,该第一请求消息可以为文字消息或图片消息等,本发明实施例对其不做具体限定。步骤206、连接管理服务器根据第一请求消息中携带的用户ID,将多个第一请求消息分发至消息丢弃服务器。连接管理服务器根据第一请求消息中携带的用户ID将多个第一请求消息分发至消息丢弃服务器的动作,可以参考步骤202中连接管理服务器根据聊天室ID将多个注册请求分发至聊天室服务器的动作,此处不再赘述。示例地,假设聊天室系统中包括3个消息丢弃服务器,分别为消息丢弃服务器1、消息丢弃服务器2和消息丢弃服务器3,连接管理服务器共接收了19个第一请求消息,其中,该19个第一请求消息分别为:客户端11发送的2个第一请求消息,该2个第一请求消息中携带的用户ID为客户端11,客户端12发送的3个第一请求消息,该3个第一请求消息中携带的用户ID为客户端12,客户端13发送的5个第一请求消息,该5个第一请求消息中携带的用户ID为客户端13,客户端14发送的2个第一请求消息,该2个第一请求消息中携带的用户ID为客户端14,客户端15发送的4个第一请求消息,该4个第一请求消息中携带的用户ID为客户端15,客户端16发送的3个第一请求消息,该3个第一请求消息中携带的用户ID为客户端16,则连接管理服务器根据第一请求消息中携带的用户ID,将多个第一请求消息分发至多个消息丢弃服务器的结果为:客户端11发送的2个第一请求消息分发至消息丢弃服务器1,客户端12发送的3个第一请求消息分发至消息丢弃服务器2,客户端13发送的5个第一请求消息分发至消息丢弃服务器3,客户端14发送的2个第一请求消息分发至消息丢弃服务器3,客户端15发送的4个第一请求消息分发至消息丢弃服务器1,客户端16发送的3个第一请求消息分发至消息丢弃服务器2。步骤207、第一消息丢弃服务器根据第三请求消息中的聊天室ID,将多个第三请求消息中携带相同聊天室ID的第三请求消息发送至同一个聊天室服务器。其中,多个第三请求消息是第一消息丢弃服务器基于丢弃周期内可通过消息个数阈值确定的允许通过的请求消息。第一消息丢弃服务器在接收到连接管理服务器分发的第一请求消息后,可以根据第一请求消息携带的聊天室ID将消息分发至聊天室服务器。但是若分发至聊天室服务器的消息过多,由于服务器配置的限制,聊天室服务器在后续的消息发送过程中可能会出现性能下降甚至崩溃的现象,因此,在第一消息丢弃服务器向聊天室服务器分发消息之前,第一消息丢弃服务器可以对接收到的第一请求消息进行丢弃,以保证聊天室服务器的性能。可选地,可以根据第一消息丢弃服务器丢弃周期内的可通过消息个数阈值,使用预设的消息丢弃策略对接收到的第一请求消息进行丢弃,将通过的消息确定为第三请求消息,再根据该第三请求消息的聊天室ID将第三请求消息分发至聊天室服务器。在该步骤中,第一消息丢弃服务器根据该第三请求消息的聊天室ID将第三请求消息分发至聊天室服务器的动作,可以参考步骤202中连接管理服务器根据聊天室ID将多个注册请求分发至至少一个聊天室服务器的动作,此处不再赘述。其中,预设的消息丢弃策略可以有多种,示例地,第一消息丢弃服务器的预设的消息丢弃策略可以包括多个阶段策略,该多个阶段策略与多个阶段一一对应,在每个阶段中,相应的阶段策略可以对具有不同优先级的第一请求消息进行不同的处理。例如,假设第一消息丢弃服务器在丢弃周期内可通过消息个数阈值为200,消息优先级可以包括高优先级、中优先级和低优先级,该丢弃周期按照消息的个数分为四个阶段,该四个阶段的划分范围和对应的阶段策略分别为:消息数处于[0,100]范围内时,高、中、低优先级的消息均通过;消息数处于(100,150]范围内时,高、中优先级的消息均通过,低优先级的消息禁止通过;消息数处于(150,200]范围内时,高优先级的消息均通过,中、低优先级的消息禁止通过;消息数处于(200,+∞)范围内时,所有优先级的消息均禁止通过。对应的,该消息丢弃策略的具体执行过程可以为:在丢弃周期内,执行以下步骤:A2、第一消息丢弃服务器在接收到一个第一请求消息时,获取k,k等于已通过的第一请求消息个数+1。B2、第一消息丢弃服务器判断k是否满足0≤k≤100。当k满足0≤k≤100时,执行C2,当k不满足0≤k≤100时,执行D2。C2、第一消息丢弃服务器允许该第一请求消息通过。执行A2。D2、第一消息丢弃服务器判断k是否满足100<k≤150。当k满足100<k≤150时,执行E2,当k不满足100<k≤150时,执行F2。E2、当第一请求消息具有高优先级或中优先级,第一消息丢弃服务器允许该第一请求消息通过,当第一请求消息具有低优先级,第一消息丢弃服务器将该第一请求消息丢弃。执行A2。F2、判断k是否满足150<k≤200。当k满足150<k≤200时,执行G2,当k不满足150<k≤200时,即k>200时,执行H2。G2、当第一请求消息具有高优先级,第一消息丢弃服务器允许该第一请求消息通过,当第一请求消息具有中优先级或低优先级,第一消息丢弃服务器将该第一请求消息丢弃。执行A2。H2、第一消息丢弃服务器丢弃第一请求消息。执行A2。重复执行步骤A2-H2直至一个丢弃周期结束。需要说明的是,以上消息丢弃的例子只是做示意性的说明,并不用以限制本发明实施例。在实际应用中,消息丢弃策略可能更加复杂,本发明实施例对其不做限定。示例地,假设第一消息丢弃服务器在某丢弃周期内共收到19条第一请求消息,其中,第一请求消息1、5、7、13和18具有高优先级,第一请求消息2、6、9、11、15和17具有中优先级,第一请求消息3、4、8、10、12、14、16和19具有高低优先级,第一请求消息1、5、7、9、15和18携带的聊天室ID为聊天室1,第二请求消息2、4、10、13和17携带的聊天室ID为聊天室2,第三请求消息3、6、8、11、12、14和16携带的聊天室ID为聊天室3,第一消息丢弃服务器某丢弃周期内的可通过消息个数阈值为10,其丢弃策略为:消息数处于[0,5]范围内时,高、中、低优先级的消息均通过;消息数处于(5,11]范围内时,高、中优先级的消息均通过,低优先级的消息禁止通过;消息数处于(11,16]范围内时,高优先级的消息均通过,中、低优先级的消息禁止通过;消息数处于(16,+∞)范围内时,所有优先级的消息均禁止通过,根据该消息丢弃策略可得:第一请求消息1、2、3、4、5、6、7、9、11和13为允许通过的请求消息,即第三请求消息1、2、3、4、5、6、7、9、11和13为第一请求消息1、2、3、4、5、6、7、9、11和13,根据聊天室ID将第三请求消息分发至聊天室服务器,可以将第三请求消息1、5、7和9分发至聊天室服务器1,将第三请求消息2、4和13分发至聊天室服务器2,将第三请求消息3、6和11分发至聊天室服务器3。需要说明的是,在该步骤中,第一消息丢弃服务器根据第三请求消息中的聊天室ID,将多个第三请求消息中携带相同聊天室ID的第三请求消息发送至同一个聊天室服务器,可以使属于同一聊天室的消息全部分发至同一个聊天室服务器,以便于对同一聊天室发送的消息进行处理,例如:以聊天室为单位的相关数据的计算等处理,如统计每秒消息的上行条数以执行消息丢弃策略和聊天室中消息的查询等处理。在实际应用中,聊天室系统中包含的每个消息丢弃服务器丢弃周期内的可通过消息个数阈值可以相等,也可以不相等,例如:可以将每个消息丢弃服务器的丢弃周期内可通过消息个数阈值均设置为200。并且,该丢弃周期内可通过消息个数阈值还可以根据实际使用情况进行调整,本发明实施例对其不做具体限定。丢弃周期内可通过消息个数阈值是为消息丢弃服务器预先设置的在丢弃周期内可以通过的消息总数的最大值,通过设置该最大值对分发的第一请求消息进行预筛选,使得最终分发至至少一个聊天室服务器的第三请求消息数量减少,相对地提高至少一个聊天室服务器的性能,降低发送至至少一个聊天室服务器的请求消息的数量过多时对至少一个聊天室服务器性能的影响。步骤208、第一聊天室服务器广播多个第二请求消息。其中,多个第二请求消息是多个第一请求消息中的请求消息,是被第一消息丢弃服务器分发的第三请求消息。第一聊天室服务器每接收到第一消息丢弃服务器分发的一个第二请求消息时,都可以以广播的方式将该第二请求消息发出,使得聊天室系统中的每个聊天室消息服务器均能接收到第二请求消息。需要说明的是,第一聊天室服务器也可以有消息丢弃功能,以实现在消息海量并发时对消息进行丢弃,以便于通过的消息能够被显示在安装有聊天室客户端的终端上,并保证在显示周期内显示的消息条数在人眼能够接受的范围内。其中,该消息丢弃功能的具体实现过程可以参考步骤207中第一消息丢弃服务器丢弃消息的相应过程,此处不再赘述。步骤209、第一聊天室消息服务器根据接收到的第二请求消息中的聊天室ID,将接收到的第二请求消息发送至每个聊天室消息服务器所管理的目标用户所在的客户端。其中,目标用户为登录目标聊天室的用户,目标聊天室为聊天室ID所指示的聊天室。在第一聊天室消息服务器接收到聊天室服务器广播的第二请求消息后,需要根据该第二请求消息所在的聊天室,向该第二请求消息所在的聊天室中的目标用户所在的客户端发送该第二请求消息,以使得目标用户看到该第二请求消息。可选地,在发送该第二请求消息时,发送的消息可以是第二请求消息本身,也可以是该第二请求消息的拉取通知。实际应用中,该过程的实现方式可以有多种,本发明实施例以以下两种可实现方式为例进行说明。第一种可实现方式,第一聊天室消息服务器根据接收到的第二请求消息中的聊天室ID,将接收到的第二请求消息中携带相同的聊天室ID的第二请求消息,发送至所有目标用户所在的客户端。第二种可实现方式,第一聊天室消息服务器将目标用户中除第二请求消息的消息发送用户之外的用户确定为更新后的目标用户,根据接收到的第二请求消息中的聊天室ID,将接收到的第二请求消息中携带相同的聊天室ID的第二请求消息,发送至更新后的目标用户所在的客户端。在该可实现方式中,由于第二请求消息的消息发送用户是对应第二请求消息的发送者,其发送的第二请求消息必然会在其客户端中显示,也即是,该用户必然能够看到其发送的第二请求消息,因此,第一聊天室消息服务器就无需再向其所在的客户端发送该第二请求消息。实际应用中,聊天室服务器接收到第二请求消息后,可以根据第二请求消息携带的用户ID判断该第二请求消息的消息发送者是不是其管理的用户,如果消息发送者不是其管理的用户,就根据消息中携带的聊天室ID将消息分发到其所管理的且登录该聊天室的所有用户;如果消息发送者是其管理的用户,则根据消息中携带的聊天室ID将消息分发到其所管理的且登录该聊天室的除了消息发送者本身以外的其他用户。示例地,以第一聊天室消息服务器以第一种可实现方式向目标用户所在的客户端发送第二请求消息,且发送的消息为第二请求消息的拉取通知为例,对发送第二请求消息的过程进行说明,此时,第一聊天室消息服务器还用于对接收到的用户消息拉取指令进行处理。当第一聊天室消息服务器接收到第一聊天室服务器广播的第二请求消息后,第一聊天室消息服务器可以根据接收到的第二请求消息中的聊天室ID,向第一聊天室消息服务器所管理的登录目标聊天室的用户所在客户端发送拉取消息的通知,该目标聊天室为第二请求消息中的聊天室ID所指示的聊天室,目标聊天室的用户在接收到第一聊天室消息服务器发送的拉取消息的通知后,当想查看该第二请求消息时,可以从该第二请求消息的消息节点处拉取该第二请求消息,以向第一聊天室消息服务器发送拉取消息指令,第一聊天室消息服务器在接收到客户端发送的拉取消息指令后,向相应客户端发送该第二请求消息。需要说明的是,使用发送拉取消息通知的方式,通过在拉取消息通知中保存消息节点的信息,以保证用户能够从该节点处对第二请求消息进行查看,能够确保用户稳定地接收到第二请求消息。例如:某用户在某次直播过程中某次查看第二请求消息的消息节点的时刻为15:30:30,且在该时刻后网络出现问题,直至15:31:30网络恢复正常,当该用户在15:31:30再次查看第二请求消息时,可以在拉取第二请求消息在15:30:30的消息节点处的消息通知,以查看15:30:30到15:31:30的时间段的第二请求消息。在该过程中,若聊天室消息服务武器向该用户发送的第二请求消息是第二请求消息本身,由于15:30:30到15:31:30的时间段内网络出现问题,该时间段的内消息会丢失,则该用户在15:31:30无法查看该时间段内的第二请求消息。因此,使用发送拉取消息通知的方式,能够确保用户稳定地接收到第二请求消息。还需要说明的是,在该步骤中,假设某聊天室中有100个用户,消息请求系统中有两个聊天室消息服务器,每个消息服务器管理该聊天室中的50个用户当聊天室消息服务器接收到聊天室服务器向其广播的1个第三请求消息时,每个聊天室消息服务器承担的消息发送数为50条。然而,若使用现有技术,一个聊天室消息服务器需要承担的消息发送条数为100条。根据该内容可知:本发明实施例提供的消息请求方法可以减轻聊天室消息服务器的负担,并且,这种效果在第二请求消息的数量过多或因同一聊天室用户极多而导致需要分发次数极多时表现得尤其明显,甚至能够避免聊天室服务器的崩溃。需要说明的是,第一聊天室消息服务器向客户端发送第二请求消息后,该第二请求消息可以显示在对应的客户端上,使用户对该第二请求消息进行查看。还需要说明的是,本发明实施例提供的请求消息处理方法步骤的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减,任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本发明的保护范围之内,因此不再赘述。综上所述,本发明实施例提供的请求消息处理方法,通过每个聊天室消息服务器根据接收到的第二请求消息中的聊天室ID,将接收到的第二请求消息中携带相同的目标聊天室ID的第二请求消息发送至每个聊天室消息服务器所管理的登录目标聊天室的用户所在客户端,使多个聊天室消息服务器共同负责同一聊天室的消息发送任务,即多个聊天室消息服务器分别将同一聊天室中的请求消息发送至各自管理的登录同一聊天室的不同用户所在客户端,相对于现有技术,无需使一个聊天室消息服务器独自承担同一聊天室的所有请求消息的发送任务,减轻了聊天室消息服务器的负担,减少了需要发送的过多的请求消息对聊天室消息服务器性能的影响,避免了聊天室消息服务器的崩溃。本发明实施例提供了一种聊天室系统,该聊天室系统的结构图请参考图1-1,该聊天室系统包括:多个客户端110、连接管理服务器120、至少一个聊天室服务器130和至少一个聊天室消息服务器140。其中,该聊天室系统中各个服务器的作用如下:连接管理服务器120用于接收多个客户端110发送的第一请求消息,该过程的具体实现请相应参考步骤205。连接管理服务器120还用于根据接收到的第一请求消息中的聊天室ID将多个第一请求消息分发至聊天室服务器130,该过程的具体实现请相应参考步骤206。每个聊天室服务器130用于广播多个第二请求消息,多个第二请求消息是多个第一请求消息中的请求消息,该过程的具体实现请相应参考步骤208。每个聊天室消息服务器140用于根据接收到的第二请求消息中的聊天室ID,将接收到的第二请求消息发送至每个聊天室消息服务器所管理的目标用户所在的客户端,目标用户为登录目标聊天室的用户,目标聊天室为聊天室ID所指示的聊天室,该过程的具体实现请相应参考步骤209。综上所述,本发明实施例提供的聊天室系统,通过每个聊天室消息服务器根据接收到的第二请求消息中的聊天室ID,将接收到的第二请求消息中携带相同的目标聊天室ID的第二请求消息发送至每个聊天室消息服务器所管理的登录目标聊天室的用户所在客户端,使多个聊天室消息服务器共同负责同一聊天室的消息发送任务,即多个聊天室消息服务器分别将同一聊天室中的请求消息发送至各自管理的登录同一聊天室的不同用户所在客户端,相对于现有技术,无需使一个聊天室消息服务器独自承担同一聊天室的所有请求消息的发送任务,减轻了聊天室消息服务器的负担,减少了需要发送的过多的请求消息对聊天室消息服务器性能的影响,避免了聊天室消息服务器的崩溃。每个聊天室消息服务器140,具体可以用于:根据接收到的第二请求消息中的聊天室ID,将接收到的第二请求消息中携带相同的聊天室ID的第二请求消息,发送至目标用户所在的客户端,该过程的具体实现请相应参考步骤209中的第一种可实现方式。或者,将目标用户中除第二请求消息的消息发送用户之外的用户确定为更新后的目标用户,根据接收到的第二请求消息中的聊天室ID,将接收到的第二请求消息中携带相同的聊天室ID的第二请求消息,发送至更新后的目标用户所在的客户端,该过程的具体实现请相应参考步骤209中的第二种可实现方式。可选地,连接管理服务器120用于接收多个客户端110发送的注册请求,注册请求包括聊天室ID和用户ID,该过程的具体实现请相应参考步骤201。连接管理服务器120用于根据聊天室ID,将多个注册请求分发至至少一个聊天室服务器130,该过程的具体实现请相应参考步骤202。每个聊天室服务器130用于根据用户ID,将接收到的注册请求分发至聊天室消息服务器140,该过程的具体实现请相应参考步骤203。每个聊天室消息服务器140用于将接收到的注册请求中的用户ID所指示的用户确定为聊天室消息服务器140所管理的用户,该过程的具体实现请相应参考步骤204。进一步地,请参考图1-2,聊天室系统中的聊天室分布式系统还可以包括:消息丢弃服务器150,在该情况下,聊天室系统中各部分的作用如下:连接管理服务器120用于根据第一请求消息中携带的用户ID,将多个第一请求消息分发至消息丢弃服务器150,该过程的具体实现请相应参考步骤206。每个消息丢弃服务器150用于根据第三请求中的聊天室ID,将多个第三请求消息中携带相同聊天室ID的第三请求消息发送至同一个聊天室服务器130,多个第三请求消息是每个消息丢弃服务器150基于丢弃周期内可通过消息个数阈值确定的允许通过的请求消息,该过程的具体实现请相应参考步骤207。综上所述,本发明实施例提供的聊天室系统,通过每个聊天室消息服务器根据接收到的第二请求消息中的聊天室ID,将接收到的第二请求消息中携带相同的目标聊天室ID的第二请求消息发送至每个聊天室消息服务器所管理的登录目标聊天室的用户所在客户端,使多个聊天室消息服务器共同负责同一聊天室的消息发送任务,即多个聊天室消息服务器分别将同一聊天室中的请求消息发送至各自管理的登录同一聊天室的不同用户所在客户端,相对于现有技术,无需使一个聊天室消息服务器独自承担同一聊天室的所有请求消息的发送任务,减轻了聊天室消息服务器的负担,减少了需要发送的过多的请求消息对聊天室消息服务器性能的影响,避免了聊天室消息服务器的崩溃。本发明实施例提供的一种第一聊天室消息服务器,请参见图1-1或图1-2,该第一聊天室消息服务器140位于聊天室系统中,聊天室系统包括:多个客户端110、至少一个连接管理服务器120和聊天室分布式系统,该聊天室分布式系统可以包括:至少一个的聊天室服务器130和至少一个的聊天室消息服务器140,第一聊天室消息服务器140为至少一个聊天室消息服务器140中的任意一个,如图3所示,该第一聊天室消息服务器140可以包括:第一接收模块1401,用于接收聊天室服务器130广播的多个第二请求消息,多个第二请求消息是多个第一请求消息中的请求消息,多个第一请求消息为连接管理服务器120接收多个客户端110发送的第一请求消息后分发至聊天室服务器130的。发送模块1402,用于根据接收到的第二请求消息中的聊天室ID,将接收到的第二请求消息发送至每个聊天室消息服务器所管理的目标用户所在的客户端,目标用户为登录目标聊天室的用户,目标聊天室为聊天室ID所指示的聊天室,该过程的具体实现请相应参考步骤209。综上所述,本发明实施例提供的聊天室消息服务器,通过第一聊天室消息服务器根据接收到的第二请求消息中的聊天室ID,将接收到的第二请求消息中携带相同的目标聊天室ID的第二请求消息发送至每个聊天室消息服务器所管理的登录目标聊天室的用户所在客户端,使多个第一聊天室消息服务器共同负责同一聊天室的消息发送任务,即多个聊天室消息服务器分别将同一聊天室中的请求消息发送至各自管理的登录同一聊天室的不同用户所在客户端,相对于现有技术,无需使一个聊天室消息服务器独自承担同一聊天室的所有请求消息的发送任务,减轻了聊天室消息服务器的负担,减少了需要发送的过多的请求消息对聊天室消息服务器性能的影响,避免了聊天室消息服务器的崩溃。进一步地,发送模块1402,具体用于:根据接收到的第二请求消息中的聊天室ID,将接收到的第二请求消息中携带相同的聊天室ID的第二请求消息,发送至目标用户所在的客户端,该过程的具体实现请相应参考步骤209中的第一种可实现方式。或者,将目标用户中除第二请求消息的消息发送用户之外的用户确定为更新后的目标用户,根据接收到的第二请求消息中的聊天室ID,将接收到的第二请求消息中携带相同的聊天室ID的第二请求消息,发送至更新后的目标用户所在的客户端,该过程的具体实现请相应参考步骤209中的第二种可实现方式。可选地,如图4所示,第一聊天室消息服务器140还可以包括:第二接收模块1403,用于接收聊天室服务器130根据聊天室ID分发的注册请求,注册请求为连接管理服务器120接收多个客户端110发送的注册请求后根据用户ID分发至聊天室服务器130的,注册请求包括聊天室ID和用户ID,该过程的具体实现请相应参考步骤205。确定模块1404,用于将接收到的注册请求中的用户ID所指示的用户确定为聊天室消息服务器140所管理的用户,该过程的具体实现请相应参考步骤205。综上所述,本发明实施例提供的聊天室消息服务器,通过第一聊天室消息服务器根据接收到的第二请求消息中的聊天室ID,将接收到的第二请求消息中携带相同的目标聊天室ID的第二请求消息发送至每个聊天室消息服务器所管理的登录目标聊天室的用户所在客户端,使多个第一聊天室消息服务器共同负责同一聊天室的消息发送任务,即多个聊天室消息服务器分别将同一聊天室中的请求消息发送至各自管理的登录同一聊天室的不同用户所在客户端,相对于现有技术,无需使一个聊天室消息服务器独自承担同一聊天室的所有请求消息的发送任务,减轻了聊天室消息服务器的负担,减少了需要发送的过多的请求消息对聊天室消息服务器性能的影响,避免了聊天室消息服务器的崩溃。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、客户端和服务器的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1