CN110620673B - 一种聊天室进程的数据处理方法及系统 - Google Patents
一种聊天室进程的数据处理方法及系统 Download PDFInfo
- Publication number
- CN110620673B CN110620673B CN201910996327.1A CN201910996327A CN110620673B CN 110620673 B CN110620673 B CN 110620673B CN 201910996327 A CN201910996327 A CN 201910996327A CN 110620673 B CN110620673 B CN 110620673B
- Authority
- CN
- China
- Prior art keywords
- chat room
- chat
- service process
- process group
- load value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1813—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Multimedia (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例提供了一种聊天室进程的数据处理方法及系统,所述聊天室进程具有对应的负载值,所述的方法包括:创建运行分布式一致性协议的多组服务进程;多组服务进程包括分布式协调服务进程组,中心服务进程组,聊天服务进程组和网关服务进程组;采用中心服务进程组监听分布式协调服务进程组存储的负载值,并在存储的负载值满足预设条件时生成聊天室创建请求;采用聊天服务进程组响应聊天室创建请求创建聊天室进程;采用网关服务进程组当接收到注册请求时,依据存储的负载值确定目标聊天室进程。通过运行分布式一致性协议的中心服务进程组,实现了中心服务进程组的选主功能,保证了在中心服务进程在单点发生故障时,可以实现故障转移。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及一种聊天室进程的数据处理方法,以及一种聊天室进程的数据处理系统。
背景技术
游戏大多采用分服架构,即每个玩家都会被分配到特定的服务进程上,只有在同一服务进程上玩家之间才能发生交互,而在这些游戏中大多都有世界聊天的需求,即玩家可以在一个公开的聊天室内进行发言。这一类型的聊天室的解决方案大多采用广播的形式,即采用单一的聊天室,因为分服架构决定了每个服务器的人数相对有限,在此之上如果进行发言再进行一些频率和道具消耗的限制,那么大体上可以很好地控制整体聊天室的压力。
但随着对游戏品类的不断探索,一些游戏的架构开始偏向于逻辑大服,即玩家和玩家之间的交互不局限于同一服务进程,而是可以跨服务进程之间发生交流,虽然玩家可能被分配到不同的服务进程上,但是仍然可以发生互相的交互,如果还按照传统的单一聊天室的系统,那么消息的广播压力会非常大。
现有技术中,为了在逻辑大服上实现跨服务进程交流,出现了如下几种聊天室系统方案:
(1)由于不可避免会出现游戏玩家达到上百万的情况,一类聊天室系统采用的解决方案是:既然无法把所有玩家都放在同一个聊天室,那么可以根据逻辑上的分布多开几个聊天室,譬如一个逻辑大服的游戏是由10个游戏服务进程提供的,那么就由这10个游戏服务进程分别提供聊天室服务。
(2)另外一类聊天室系统采用的方案是:预先设定固定的聊天室数目,以及事先设定一个聊天室最大人数上限,玩家在进入游戏后会被分配到一个低于最大人数上限的聊天室,目的是更集中的将玩家分配到某个聊天室,不会出现玩家数目少而分散到各个聊天室的情况。
(3)还有一类聊天室系统的方案是:采用中心服务的方式,即根据玩家的人数的变化,由一个中心服务适时的创建聊天室,即聊天室数目不是固定的,而是会随着人数的变化而发生变化的。
现有技术的上述聊天室系统方案其实能解决很多问题,但是各自都存在一些缺点,其中:
方案(1)的缺点是:用户如果分散在多个游戏服务进程时,在玩家人数较少的时候,由于游戏服务进程是追求负载均衡的,所以玩家会被均匀分散在多个服务进程,每个聊天室的人数空余充足,但是玩家无法互相沟通,总体而言玩家的体验没有那么好。
方案(2)的缺点是:预先设定固定的聊天数目无法解决用户数目陡增时的情况,假如预先设定了10个聊天室,每个聊天室1000人,那么在人数多于10000时新加入的玩家就无法很好地体验聊天室服务,总的来说预先设定的聊天服的数目非常讲究经验,缺少自适应的特性。
方案(3)的缺点是:采取了根据人数动态变化聊天室数目,具备很强的伸缩性,但是仍然依赖中心服务进行聊天室的创建以及玩家聊天室的分配,一旦中心服务故障那么聊天室的服务几乎都不可用。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种聊天室进程的数据处理方法和相应的一种聊天室进程的数据处理系统。
为了解决上述问题,本发明实施例公开了一种聊天室进程的数据处理方法,所述聊天室进程具有对应的负载值,所述的方法包括:
创建运行分布式一致性协议的多组服务进程;所述多组服务进程包括分布式协调服务进程组,中心服务进程组,聊天服务进程组和网关服务进程组;
采用所述中心服务进程组监听所述分布式协调服务进程组存储的负载值,并在所述存储的负载值满足预设条件时生成聊天室创建请求;
采用所述聊天服务进程组响应所述聊天室创建请求创建聊天室进程;
采用所述网关服务进程组当接收到注册请求时,依据所述存储的负载值确定目标聊天室进程。
可选的,还包括:
采用所述聊天服务进程组检测所述聊天室进程的实时负载值,当所述实时负载值超过第一预设阈值时,更新所述分布式协调服务进程组存储的负载值。
可选的,所述注册请求携带用户标识,所述方法还包括:
采用所述聊天服务进程组提取所述聊天室进程中的用户标识,并将与所述用户标识对应的用户添加到所述目标聊天室进程中。
可选的,所述采用所述网关服务进程组当接收到注册请求时,依据所述存储的负载值确定目标聊天室进程,包括:
采用所述网关服务进程组当接收到注册请求时,递增所述存储的负载值生成中间值,并确定所述中间值不超过第二预设阈值的聊天室进程为目标聊天室进程。
可选的,还包括:
采用所述网关服务进程组接收聊天消息,将所述聊天消息广播到与所述聊天消息的聊天室标识对应的聊天室进程中。
本发明实施例还公开了一种聊天室进程的数据处理系统,所述聊天室进程具有对应的负载值,包括:
进程创建模块,用于创建运行分布式一致性协议的多组服务进程;所述多组服务进程包括分布式协调服务进程组,中心服务进程组,聊天服务进程组和网关服务进程组;
聊天室创建请求生成模块,用于采用所述中心服务进程组监听所述分布式协调服务进程组存储的负载值,并在所述存储的负载值满足预设条件时生成聊天室创建请求;
聊天室进程创建模块,用于采用所述聊天服务进程组响应所述聊天室创建请求创建聊天室进程;
目标聊天室进程确定模块,用于采用所述网关服务进程组当接收到注册请求时,依据所述存储的负载值确定目标聊天室进程。
可选的,还包括:
负载值更新模块,用于采用所述聊天服务进程组检测所述聊天室进程的实时负载值,当所述实时负载值超过第一预设阈值时,更新所述分布式协调服务进程组存储的负载值。
可选的,所述注册请求携带用户标识,还包括:
用户添加模块,用于采用所述聊天服务进程组提取所述聊天室进程中的用户标识,并将与所述用户标识对应的用户添加到所述目标聊天室进程中。
可选的,所述目标聊天室进程确定模块,包括:
目标聊天室进程确定子模块,用于采用所述网关服务进程组当接收到注册请求时,递增所述存储的负载值生成中间值,并确定所述中间值不超过第二预设阈值的聊天室进程为目标聊天室进程。
可选的,还包括:
聊天消息广播模块,用于采用所述网关服务进程组接收聊天消息,将所述聊天消息广播到与所述聊天消息的聊天室标识对应的聊天室进程中。
本发明实施例还公开了一种电子设备,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如本发明实施例所述的一个或多个的方法的步骤。
本发明实施例还公开了一种计算机可读存储介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如本发明实施例所述的一个或多个的方法的步骤。
本发明实施例包括以下优点:
在本发明实施例中,通过运行分布式一致性协议的中心服务进程组,实现了中心服务进程组的选主功能,保证了在中心服务进程在单点发生故障时,可以实现故障转移。其中,虽然存在选主的不可用期,但由于聊天室进程的分配不依赖于中心服务进程,所以即使在选主,如果当前聊天室进程的数目足够,网关服务进程组还是能正常地将用户分配到聊天室进程,本质上这是因为本系统实现了去中心化的聊天室进程分配,基本上可以保证聊天服务进程组的全天候不间断服务。
附图说明
图1是本发明的一种聊天室进程的数据处理方法实施例的步骤流程图;
图2是本发明的一种数据处理过程的流程框图;
图3是本发明的一种聊天室进程的数据处理系统实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明的一种聊天室进程的数据处理方法实施例的步骤流程图,所述聊天室进程具有对应的负载值,所述方法具体可以包括如下步骤:
步骤101,创建运行分布式一致性协议的多组服务进程;所述多组服务进程包括分布式协调服务进程组,中心服务进程组,聊天服务进程组和网关服务进程组;
分布式一致性,即为多个节点(Multiple Nodes)的数据完全相同。但因为多个节点通过网络互联,并不一定时刻可用,而服务不能因为某些节点(特别是少数节点)不可用时,导致整个系统不可用,分布式一致性协议用于保证数据的完整性和一致性。
分布式一致性协议可以包括:PaxOS协议、Raft协议、ZAB协议(ZooKeeper AtomicBroadcast,ZooKeeper原子广播协议)和PacificA协议等。在本发明实施例中,分布式一致性协议可以为Raft协议,其作用是在若干台机器上同步数据,保证数据完整并且一致,其可以在多台机器上实现选主的功能,保证不会因为一个服务进程宕机而无法服务。
在本发明实施例中,可以创建运行分布式一致性协议的多组服务进程,分别为:分布式协调服务进程组,中心服务进程组,聊天服务进程组和网关服务进程组。每组服务进程中包括大于或等于3个服务进程,通过分布式一致性协议实现每组服务进程的故障转移。
其中,分布式协调服务进程组用于存储聊天室进程的负载值,并向监听分布式协调服务进程组的其他服务进程通知相应的数据变化。
中心服务进程组用于负责监听聊天室进程的负载值,并适时向聊天服务进程组发送创建聊天室进程的请求,以创建聊天室进程提供给新加入的用户。
聊天服务进程组用于创建聊天室进程,将用户加入聊天室进程,以及将用于发送的聊天消息广播到聊天室进程中的其他用户。聊天服务进程组可以检测聊天室进程的负载值,将聊天室进程的负载值发生变化时,发送变化的数值给分布式协调服务进程组。需要说明的是,聊天室进程可以是聊天服务进程组创建的子进程,在同一子进程中的用户之间可以进行交流,即在相同聊天室进程中的用户之间可以进行交流。
网关服务进程组用于负责监听聊天室进程的负载值和接入新注册的用户,并根据聊天室进程的负载值将用户分配到匹配的聊天室进程中。
步骤102,采用所述中心服务进程组监听所述分布式协调服务进程组存储的负载值,并在所述存储的负载值满足预设条件时生成聊天室创建请求;
聊天室进程的负载值可以指聊天室进程中加入的用户的数值。
在本发明实施例中,分布式协调服务进程组可以存储聊天室进程的负载值。中心服务进程组可以注册分布式协调服务进程组存储的负载值的监听器,当分布式协调服务进程组存储的负载值发生变化时,可以通知中心服务进程组,从而中心服务进程组可以掌握聊天室进程的负载情况。
其中,预设条件可以是预先设置的用于控制创建聊天室进程的条件。例如,预设条件为一定的数值范围。
中心服务进程组在监听到分布式协调服务进程组中存储的负载值满足预设条件时,可以生成聊天室创建请求。聊天室创建请求可以是用于指示创建聊天室进程的请求消息,携带聊天服务进程标识。其中,聊天服务进程标识可以是聊天服务进程的唯一标识码。作为一种示例,预设条件可以是用户数量为8万,中心服务进程组在坚挺到聊天室进程的用户数量大于或等于8万时,可以生成聊天室创建请求。
中心服务进程组通过监听到分布式协调服务进程组中存储的负载值,可以确定聊天服务进程组中负载较小的聊天服务进程,作为目标聊天服务进程。为了实现负载均衡,每个聊天服务进程承载的聊天室进程的数目不能过多,这就需要中心服务进程组在进行分配聊天室进程时,将聊天室进程分配到较低负载的聊天服务进程。由于中心服务进程组会监听聊天室进程的负载情况,所以中心服务进程组可以知道每个聊天室进程被分配到哪个聊天服务进程,从而可以选出一个负载较低的聊天服务进程进行分配。
步骤103,采用所述聊天服务进程组响应所述聊天室创建请求创建聊天室进程;
具体的,聊天室进程组可以根据聊天室创建请求中携带的聊天服务进程标识确定需要创建聊天室进程的目标聊天服务进程,采用目标聊天服务进程创建聊天室进程,维护聊天室进程的数据结构。
例如,聊天服务进程组中包括:聊天服务进程1,聊天服务进程2,聊天服务进程3和聊天服务进程4,通过聊天室创建请求中携带的聊天服务进程标识确定需要创建聊天室进程的是聊天服务进程3,则可以在聊天服务进程3中创建聊天室进程。
步骤104,采用所述网关服务进程组当接收到注册请求时,依据所述存储的负载值确定目标聊天室进程。
其中,注册请求为指示添加到聊天室进程的请求消息。当用户需要加入聊天室进程时,可以向网关服务进程发送注册请求。
在本发明实施例中,网关服务进程组可以监听分布式协调服务进程组存储的负载值,从而了解到各个聊天室进程的负载情况,并根据该分布式协调服务进程组存储的负载值确定目标聊天室进程。
在具体实现中,用户分配到聊天室进程负载均衡的目的不是让玩家均匀地分布在各个聊天室进程,而是让用户尽可能的分配到还没达到人数上限的聊天室进程。因此,可以预先设定一个聊天室进程的用户数量上限值,网关服务进程组优先确定用户数量较多,但是还没有达到上限值的聊天室进程作为为目标聊天室进程,从而可以做到用户数量尽量集中在一起。
作为一种示例,设定聊天室进程的用户数量上限值为10万人,当前有5个聊天室进程的用户数量还没满10万人,其中,用户数量分别为:9.5万人,9万人,8.8万人,8.5万人,8万人,则确定用户数量为9.5万人的聊天室进程为目标聊天室进程。
需要说明的是,由于分布式协调服务进程组提供的监听聊天室进程中用户数量变化的功能不一定是及时的,所以,如果在用户大批量进入的时候,聊天室进程的创建的速度可能会达不到用户注册到聊天室的速度,为了解决这一问题,就设计了相应的低水位阈值,如果当前的聊天室进程里低于低水位阈值的聊天室进程数量不足Y个,就会创建Y个聊天室,这是由中心服务进程去负责提前创建的,在这种设计下只要Y设计的足够合理,就可以满足玩家大批量注册时的需求。
在实施本发明实施例的方案时,可以设置上述步骤102中用于指示创建聊天室进程的预设条件的数值(相当于于低水位阈值),稍微小于聊天室进程的用户数量上限值,从而可以在聊天室进程中的用户数量还未达到上限值时就创建新的聊天室进程,保证每个聊天室进程的用户数量不会超出上限值。
在本发明的一种优选实施例中,所述方法还可以包括如下步骤:
采用所述聊天服务进程组检测所述聊天室进程的实时负载值,当所述实时负载值超过第一预设阈值时,更新所述分布式协调服务进程组存储的负载值。
由于聊天室进程中用户数量的变化会比较频繁,如果聊天室进程每次发生人数变化,都将变化信息更新到分布式协调服务进程组中,那么分布式协调服务进程组的负载也可能出现过高的问题,所以需要控制这一类聊天室进程用户数量变化信息的更新量。进而,由于负载均衡在很多时候其实只是需要知道聊天室进程中的用户数量是否已经满了,所以可以通过将负载人数在变化特定数目(称为step)时,才将聊天室进程的变化信息更新到分布式协调服务进程组中,从而减轻分布式协调服务进程组的负载。
在具体实现中,聊天服务进程组可以检测聊天室进程的实时负载值,判断实时负载值是否超过第一预设阈值,当实时负载值超过第一预设阈值时,可以更新分布式协调服务进程组存储的负载值。其中,实时负载值可以为聊天室进程最新的负载值,第一预设阈值可以为预先设定的用户数量阈值。作为一种示例,第一预设阈值为1万,则当聊天室进程中用户数量的变化量大于或等于1万时,聊天服务进程组才更新分布式协调服务进程组中存储的负载值。
在本发明的一种优选实施例中,所述注册请求携带用户标识,所述方法还包括:
采用所述聊天服务进程组提取所述聊天室进程中的用户标识,并将与所述用户标识对应的用户添加到所述目标聊天室进程中。
其中,用户标识可以是用户的唯一标识码,例如,在游戏应用场景中,用户标识可以为用户的游戏名称。
在本发明实施例中,聊天服务进程组可以提取聊天室进程中的用户标识,根据用户标识确定需要添加到目标聊天室进程中的用户,并将该用户添加到目标聊天室进程中。
在本发明的一种优选实施例中,所述步骤104可以包括如下子步骤:
采用所述网关服务进程组当接收到注册请求时,递增所述存储的负载值生成中间值,并确定所述中间值不超过第二预设阈值的聊天室进程为目标聊天室进程。
由于分布式协调服务进程组提供的监听功能存在一定的时延,即聊天室进程被创建,然后存储该聊天室进程的负载值到分布式协调服务进程组之后,其余监听这个聊天室进程的用户数量变化的服务,可能存在一定时延才感知到聊天室进程的负载值变化。所以,当网关服务进程将用户注册到一个存储的负载值还没达到最大用户数量上限值的聊天室进程中时,很可能这个聊天室进程已经满员了,这会造成聊天室进程的人数会超出设计的最大用户数量上限值的情况。
为了解决这一问题,将在用户添加到目标聊天室进程中时,还需要有一步预注册,即事先向预设的存储系统写入用户注册的信息,由预设的存储系统保证聊天室进程中的用户数量不会超出上限值。
具体的,预设的存储系统可以作为将用户注册到聊天室进程的中间设备,在预设的存储系统中维护一个数据,在每次接收到注册请求时,对存储的负载值进行递增,生成中间值。作为一种示例,设存储的负载值为800,接收到10个注册请求,则递增存储的负载值为810。预设的存储系统在接收到新的注册请求时,判断的当前的中间值是否超过第二预设阈值,如果当前的中间值超过第二预设阈值,则可以向网关服务进程组返回失败的消息,并丢弃该注册请求。网关服务进程组接收到失败的消息之后,则代表注册聊天室进程失败,可以由网关服务进程组重新选择另外一个聊天室进程为作为目标聊天室进程。其中,第二预设阈值可以是预先设定的聊天室进程的用户数量上限值。
在本发明的一种优选实施例中,所述方法还可以包括如下步骤:
采用所述聊天服务进程组接收所述网关服务进程组转发的聊天消息,将所述聊天消息广播到与所述聊天消息的聊天室标识对应的聊天室进程中。
在本发明实施例中,聊天消息可以携带聊天室标识,聊天室标识用于唯一标识聊天室进程。用户在注册完成之后,可以将聊天消息发送到网关服务进程组,由网关服务进程组将聊天消息转发到聊天服务进程组。聊天服务进程组可以接收网关服务进程组转发的聊天消息,并提取聊天消息中的聊天室标识,根据聊天室标识确定需要广播聊天消息的聊天室进程,将聊天消息广播到该聊天室进程中。
如图2示出了本发明的一种数据处理过程的流程框图,包括分布式协调服务,中心服务,聊天服务和网关服务,以及,redis集群缓存数据库。其中,分布式协调服务,中心服务,聊天服务和网关服务分别由运行分布式一致性协议的多个进程组成。分布式协调服务存储聊天服务中的聊天室进程的负载值,聊天服务在检测到聊天室进程的负载值的变化达到一定阈值时,可以将聊天室进程的变化情况通知到分布式协调服务,使得分布式协调服务更新存储的负载值。中心服务和网关服务分别监听分布式协调服务存储的负载值,中心服务在确定存储的负载值满足预设条件时,向聊天服务发送聊天室进程创建请求,使得聊天服务可以创建新的聊天室进程。网关服务在接收到用户A发送的注册请求时,向redis进行预注册,由redis将注册请求发送到聊天服务,已经注册完成的用户B可以直接向网关服务发送聊天消息,由网关服务将聊天消息发送到聊天服务进程。
在本发明实施例中,通过运行分布式一致性协议的中心服务进程组,实现了中心服务进程组的选主功能,保证了在中心服务进程在单点发生故障时,可以实现故障转移。其中,虽然存在选主的不可用期,但由于聊天室进程的分配不依赖于中心服务进程,所以即使在选主,如果当前聊天室进程的数目足够,网关服务进程组还是能正常地将用户分配到聊天室进程,本质上这是因为本系统实现了去中心化的聊天室进程分配,基本上可以保证聊天服务进程组的全天候不间断服务。
其次,用户的聊天室进程负载均衡的分配不是采用随机分配,而是尽可能将用户集中在聊天室进程以提升用户的体验,这样的策略在用户数目多和少时都能够给用户带来的较大的体验。
此外,通过设定低水位阈值的创建聊天室的策略,解决单个创建聊天室可能造成的创建跟不上用户注册的问题。而且,只在聊天室的人数达到特定step时(比如每变化200人)才将用户数量的变化数据更新到分布式协调服务进程组,在满足全局感知聊天室进程的负载值的需求下,极大的降低了分布式协调服务进程组的压力。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图3,示出了本发明的一种聊天室进程的数据处理系统实施例的结构框图,所述聊天室进程具有对应的负载值,具体可以包括如下模块:
进程创建模块301,用于创建运行分布式一致性协议的多组服务进程;所述多组服务进程包括分布式协调服务进程组,中心服务进程组,聊天服务进程组和网关服务进程组;
聊天室创建请求生成模块302,用于采用所述中心服务进程组监听所述分布式协调服务进程组存储的负载值,并在所述存储的负载值满足预设条件时生成聊天室创建请求;
聊天室进程创建模块303,用于采用所述聊天服务进程组响应所述聊天室创建请求创建聊天室进程;
目标聊天室进程确定模块304,用于采用所述网关服务进程组当接收到注册请求时,依据所述存储的负载值确定目标聊天室进程。
在本发明的一种优选实施例中,所述系统还可以包括如下模块:
负载值更新模块,用于采用所述聊天服务进程组检测所述聊天室进程的实时负载值,当所述实时负载值超过第一预设阈值时,更新所述分布式协调服务进程组存储的负载值。
在本发明的一种优选实施例中,所述注册请求携带用户标识,所述系统还可以包括如下模块:
用户添加模块,用于采用所述聊天服务进程组提取所述聊天室进程中的用户标识,并将与所述用户标识对应的用户添加到所述目标聊天室进程中。
在本发明的一种优选实施例中,所述目标聊天室进程确定模块,可以包括如下子模块:
目标聊天室进程确定子模块,用于采用所述网关服务进程组当接收到注册请求时,递增所述存储的负载值生成中间值,并确定所述中间值不超过第二预设阈值的聊天室进程为目标聊天室进程。
在本发明的一种优选实施例中,所述系统还可以包括如下模块:
聊天消息广播模块,用于采用所述网关服务进程组接收聊天消息,将所述聊天消息广播到与所述聊天消息的聊天室标识对应的聊天室进程中。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例还提供了一种电子设备,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行本发明实施例所述的方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行本发明实施例所述的方法的步骤。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种聊天室进程的数据处理方法和一种聊天室进程的数据处理装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (12)
1.一种聊天室进程的数据处理方法,其特征在于,所述聊天室进程具有对应的负载值,所述的方法包括:
创建运行分布式一致性协议的多组服务进程;所述多组服务进程包括分布式协调服务进程组,中心服务进程组,聊天服务进程组和网关服务进程组;
采用所述中心服务进程组监听所述分布式协调服务进程组存储的负载值,并在所述存储的负载值满足预设条件时生成聊天室创建请求;
采用所述聊天服务进程组响应所述聊天室创建请求创建聊天室进程;
采用所述网关服务进程组当接收到注册请求时,依据所述存储的负载值确定目标聊天室进程;
其中,所述采用所述网关服务进程组当接收到注册请求时,依据所述存储的负载值确定目标聊天室进程,包括:
采用所述网关服务进程组当接收到注册请求时,依据所述存储的负载值从所述聊天服务进程组中,确定用户数量较多且未达到预设用户数量上限值的聊天服务进程,作为目标聊天室进程。
2.根据权利要求1所述的方法,其特征在于,还包括:
采用所述聊天服务进程组检测所述聊天室进程的实时负载值,当所述实时负载值超过第一预设阈值时,更新所述分布式协调服务进程组存储的负载值。
3.根据权利要求1所述的方法,其特征在于,所述注册请求携带用户标识,所述方法还包括:
采用所述聊天服务进程组提取所述聊天室进程中的用户标识,并将与所述用户标识对应的用户添加到所述目标聊天室进程中。
4.根据权利要求1所述的方法,其特征在于,所述采用所述网关服务进程组当接收到注册请求时,依据所述存储的负载值确定目标聊天室进程,还包括:
递增所述存储的负载值生成中间值,并判断所述中间值是否超过第二预设阈值,若所述中间值不超过所述第二预设阈值,则将用户注册到所述目标聊天室进程;
若所述中间值超过所述第二预设阈值,则向所述网关服务进程组返回失败的消息,并丢弃所述注册请求。
5.根据权利要求1所述的方法,其特征在于,还包括:
采用所述网关服务进程组接收聊天消息,将所述聊天消息广播到与所述聊天消息的聊天室标识对应的聊天室进程中。
6.一种聊天室进程的数据处理系统,其特征在于,所述聊天室进程具有对应的负载值,包括:
进程创建模块,用于创建运行分布式一致性协议的多组服务进程;所述多组服务进程包括分布式协调服务进程组,中心服务进程组,聊天服务进程组和网关服务进程组;
聊天室创建请求生成模块,用于采用所述中心服务进程组监听所述分布式协调服务进程组存储的负载值,并在所述存储的负载值满足预设条件时生成聊天室创建请求;
聊天室进程创建模块,用于采用所述聊天服务进程组响应所述聊天室创建请求创建聊天室进程;
目标聊天室进程确定模块,用于采用所述网关服务进程组当接收到注册请求时,依据所述存储的负载值确定目标聊天室进程;
其中,所述目标聊天室进程确定模块,具体用于:
采用所述网关服务进程组当接收到注册请求时,依据所述存储的负载值从所述聊天服务进程组中,确定用户数量较多且未达到预设用户数量上限值的聊天服务进程,作为目标聊天室进程。
7.根据权利要求6所述的系统,其特征在于,还包括:
负载值更新模块,用于采用所述聊天服务进程组检测所述聊天室进程的实时负载值,当所述实时负载值超过第一预设阈值时,更新所述分布式协调服务进程组存储的负载值。
8.根据权利要求6所述的系统,其特征在于,所述注册请求携带用户标识,还包括:
用户添加模块,用于采用所述聊天服务进程组提取所述聊天室进程中的用户标识,并将与所述用户标识对应的用户添加到所述目标聊天室进程中。
9.根据权利要求6所述的系统,其特征在于,所述目标聊天室进程确定模块,还用于:
递增所述存储的负载值生成中间值,并判断所述中间值是否超过第二预设阈值,若所述中间值不超过所述第二预设阈值,则将用户注册到所述目标聊天室进程;若所述中间值超过所述第二预设阈值,则向所述网关服务进程组返回失败的消息,并丢弃所述注册请求。
10.根据权利要求6所述的系统,其特征在于,还包括:
聊天消息广播模块,用于采用所述网关服务进程组接收聊天消息,将所述聊天消息广播到与所述聊天消息的聊天室标识对应的聊天室进程中。
11.一种电子设备,其特征在于,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如权利要求1-5任一项所述的方法的步骤。
12.一种计算机可读存储介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如权利要求1-5任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910996327.1A CN110620673B (zh) | 2019-10-18 | 2019-10-18 | 一种聊天室进程的数据处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910996327.1A CN110620673B (zh) | 2019-10-18 | 2019-10-18 | 一种聊天室进程的数据处理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110620673A CN110620673A (zh) | 2019-12-27 |
CN110620673B true CN110620673B (zh) | 2022-03-22 |
Family
ID=68926006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910996327.1A Active CN110620673B (zh) | 2019-10-18 | 2019-10-18 | 一种聊天室进程的数据处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110620673B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111249747B (zh) * | 2020-01-20 | 2023-05-09 | 网易(杭州)网络有限公司 | 一种游戏中的信息处理方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1523844A (zh) * | 2003-02-20 | 2004-08-25 | 国际商业机器公司 | 用于在计算网格中创建服务实例的方法和系统 |
CN104243537A (zh) * | 2013-06-24 | 2014-12-24 | 中国银联股份有限公司 | 一种云计算环境下的自动伸缩方法和系统 |
CN108696364A (zh) * | 2017-04-06 | 2018-10-23 | 北京云中融信网络科技有限公司 | 请求消息处理方法、聊天室消息服务器及聊天室系统 |
CN108958882A (zh) * | 2018-06-06 | 2018-12-07 | 麒麟合盛网络技术股份有限公司 | 一种容器调整方法、装置和系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101720063A (zh) * | 2009-12-02 | 2010-06-02 | 中兴通讯股份有限公司 | 群组创建方法及装置、聊天室功能实现方法及系统 |
US20170206111A1 (en) * | 2016-01-15 | 2017-07-20 | Qualcomm Innovation Center, Inc. | Managing processing capacity provided to threads based upon load prediction |
CN108737240A (zh) * | 2017-04-18 | 2018-11-02 | 阿里巴巴集团控股有限公司 | 聊天群自动创建的方法、装置以及群创建的方法 |
-
2019
- 2019-10-18 CN CN201910996327.1A patent/CN110620673B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1523844A (zh) * | 2003-02-20 | 2004-08-25 | 国际商业机器公司 | 用于在计算网格中创建服务实例的方法和系统 |
KR100826837B1 (ko) * | 2003-02-20 | 2008-05-06 | 인터내셔널 비지네스 머신즈 코포레이션 | 서비스 인스턴스 생성 방법, 예측형 그리드 서비스인스턴스 생성 시스템 및 머신 판독 가능 저장 장치 |
CN104243537A (zh) * | 2013-06-24 | 2014-12-24 | 中国银联股份有限公司 | 一种云计算环境下的自动伸缩方法和系统 |
CN108696364A (zh) * | 2017-04-06 | 2018-10-23 | 北京云中融信网络科技有限公司 | 请求消息处理方法、聊天室消息服务器及聊天室系统 |
CN108958882A (zh) * | 2018-06-06 | 2018-12-07 | 麒麟合盛网络技术股份有限公司 | 一种容器调整方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110620673A (zh) | 2019-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8838703B2 (en) | Method and system for message processing | |
US9854027B2 (en) | Providing clients access to a server service using an OPC unified architecture (OPC-UA) | |
US7937442B2 (en) | Multipoint control unit (MCU) failure detection and rollover | |
JP2008519477A (ja) | サーバ間の直接通信を用いることによってノード構成におけるサーバ・イベントを監視するための方法及びシステム | |
US8880665B2 (en) | Nonstop service system using voting, and information updating and providing method in the same | |
CN103259740A (zh) | 一种负载均衡处理方法及装置 | |
CN110620673B (zh) | 一种聊天室进程的数据处理方法及系统 | |
CN103812685B (zh) | 同时在线统计系统及统计方法 | |
CN103703745A (zh) | 用于将用户代理与服务器集群互连的方法和设备 | |
CN111905362A (zh) | 游戏公会的加载方法和服务器 | |
US8909666B2 (en) | Data query system and constructing method thereof and corresponding data query method | |
CN104580520A (zh) | 一种运行互动业务的方法及装置 | |
CN107483310B (zh) | 一种终端与转发节点之间组网的方法和系统 | |
CN104079663B (zh) | 分布式实时同步网络系统及其通告数据的方法 | |
CN109413117B (zh) | 分布式数据计算方法、装置、服务器及计算机存储介质 | |
CN113398570B (zh) | 服务器分组方法、设备、存储介质和服务器集群 | |
CN114143730B (zh) | 信令处理方法、通信系统、电子设备和存储介质 | |
CN113824776A (zh) | 一种网络请求的自动分发方法和系统 | |
CN113703826A (zh) | 响应数据处理请求的方法、装置、设备以及存储介质 | |
CN108093147B (zh) | 一种分布式多级调度方法和设备 | |
EP3424182A1 (en) | Neighbor monitoring in a hyperscaled environment | |
CN105933131B (zh) | 多媒体任务处理方法及装置 | |
CN111770178B (zh) | 一种领导节点选举方法及系统 | |
CN114978892B (zh) | 一种目标节点确定方法及装置 | |
CN102064974B (zh) | 一种告警信息的处理方法、系统和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |