CN110120889B - 数据处理方法、设备及计算机存储介质 - Google Patents
数据处理方法、设备及计算机存储介质 Download PDFInfo
- Publication number
- CN110120889B CN110120889B CN201910372153.1A CN201910372153A CN110120889B CN 110120889 B CN110120889 B CN 110120889B CN 201910372153 A CN201910372153 A CN 201910372153A CN 110120889 B CN110120889 B CN 110120889B
- Authority
- CN
- China
- Prior art keywords
- data
- data node
- node
- message
- slave
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
-
- 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/131—Protocols for games, networked simulations or virtual reality
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种数据处理方法、设备及计算机存储介质。该方法应用于代理模块,所述代理模块分别与业务节点和数据模块连接,所述业务节点通过所述代理模块与所述数据模块通信,所述方法包括:接收所述业务节点对所述数据模块的数据处理请求,所述数据模块包括至少两个数据节点;将所述数据处理请求发送给至少两个所述数据节点;接收至少两个所述数据节点分别对所述数据处理请求进行处理后生成的处理结果消息;根据至少两个所述处理结果消息,确定目标处理结果消息,以发送至所述业务节点。本发明的方法,提高了为游戏用户提供数据服务的质量。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据处理方法、设备及计算机存储介质。
背景技术
随着游戏行业的日益成熟,用户对游戏服务的要求也越来越高,因此一般游戏服务需要部署多台机器,甚至上千台机器进行机器集群运行,以此来保证用户体验。而多台机器运行时,就会比较容易出现机器宕机、磁盘异常、机房网络异常等问题,这些问题对游戏业务影响较大,例如,导致游戏数据异常,甚至导致整个游戏瘫痪,从而降低面向用户的服务质量。
发明内容
本发明实施例提供一种数据处理方法、设备及计算机存储介质,用以解决机器宕机、磁盘异常、机房网络异常等问题对游戏业务的影响,以提升服务质量。
第一方面,本发明实施例提供一种数据处理方法,应用于代理模块,所述代理模块分别与业务节点和数据模块连接,所述业务节点通过所述代理模块与所述数据模块通信,所述方法包括:
接收所述业务节点对所述数据模块的数据处理请求,所述数据模块包括至少两个数据节点;
将所述数据处理请求发送给至少两个所述数据节点;
接收至少两个所述数据节点分别根据所述数据处理请求进行处理得到的处理结果消息;
根据至少两个所述处理结果消息,确定目标处理结果消息,以发送至所述业务节点。
第二方面,本发明实施例提供一种数据处理方法,应用于数据模块,所述方法包括:
接收代理模块转发的业务节点的数据处理请求;
对所述数据处理请求进行处理,并生成处理结果消息;
发送所述处理结果消息至所述代理模块。
第三方面,本发明实施例提供一种数据处理装置,包括:
第一接收模块,用于接收所述业务节点对所述数据模块的数据处理请求,所述数据模块包括至少两个数据节点;
第一发送模块,用于将所述数据处理请求发送给至少两个所述数据节点;
所述第一接收模块,还用于接收至少两个所述数据节点分别根据所述数据处理请求进行处理发送的处理结果消息;
确定模块,用于根据至少两个所述处理结果消息,确定目标处理结果消息,以发送至所述业务节点。
第四方面,本发明实施例提供一种服务器,包括:
第二接收模块,用于接收代理模块转发的业务节点的数据处理请求;
数据处理及生成模块,用于对所述数据处理请求进行处理,并生成处理结果消息;
第二发送模块,用于发送所述处理结果消息至代理模块。
第五方面,本发明实施例提供一种电子设备,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现第一方面所述的方法。
第六方面,本发明实施例提供一种服务器,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现第二方面所述的方法。
第七方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现第一方面或第二方面所述的方法。
本发明实施例提供的一种数据处理方法、设备及计算机存储介质,通过接收所述业务节点对所述数据模块的数据处理请求,所述数据模块包括至少两个数据节点;将所述数据处理请求发送给至少两个所述数据节点;接收至少两个所述数据节点分别根据所述数据处理请求进行处理得到的处理结果消息;根据至少两个所述处理结果消息,确定目标处理结果消息,以发送至所述业务节点的手段,由于数据模块包括至少两个数据节点,且数据处理请求是发送给至少两个数据节点的,因此,当其中一个数据节点出现异常时,另外一个数据节点也能够正常提供服务,从而保证面向游戏用户的服务质量。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1为本发明实施例的应用场景示意图;
图2为本发明实施例的数据处理方法的流程图;
图3为本发明另一实施例提供的数据处理方法的流程图;
图4为本发明另一实施例提供的数据处理方法的流程图;
图5是本发明实施例的数据处理方法的信令图;
图6为本发明另一实施例提供的数据处理方法的流程图;
图7为本发明另一实施例提供的数据处理方法的流程图;
图8为本发明另一实施例提供的数据处理方法的信令图;
图9是本发明另一实施例的数据处理方法的信令图;
图10是本发明实施例的一种数据处理方法流程图;
图11是本发明实施例的数据处理装置的结构示意图;
图12是本发明实施例的服务器的结构示意图;
图13为本发明实施例提供的一种电子设备的结构示意图;
图14为本发明实施例提供的一种服务器的结构示意图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1为本发明实施例提供的可实现数据处理方法的***架构示意图。该***架构包括多个业务节点10、多个代理模块11和多个数据模块12,其中,每个数据模块12包括至少两个数据节点,本发明实施例是以一个业务节点、一个代理模块以及两个数据节点的交互过程为例对本发明实施例的方法步骤进行举例说明,不应当理解为对业务节点、代理模块和数据节点的数量的具体限定。如图1所示,具体的,数据模块的至少两个数据节点可以认为是具有相同结构,以及存储有相同数据的节点服务器,以下记为第一数据节点d1和第二数据节点d2。对于每个业务节点10来说,均通过代理模块11与第一数据节点d1和第二数据节点d2通信连接。其中,代理模块11、第一数据节点d1和第二数据节点d2分别为不同的进程,可以分别部署在同一机房的不同的机器上,也可以分别部署在不同的机房内,对于具体的部署方式,本领域技术人员可以根据实际需要在上述部署方式中进行选择或者根据上述部署方式进行相应调整,本发明对此不做限定。
在一个具体的应用场景中,业务节点10可以是游戏业务节点,数据节点可以是游戏业务的数据节点,例如用于存储游戏业务的相关数据的服务器。
下面基于图1所示的***架构对该数据处理方法进行详细说明。
图2为本发明实施例提供的数据处理方法的流程图。该方案的执行主体为图1中所示的代理模块11,如图2所示,该数据处理方法的具体步骤如下:
步骤S201、接收所述业务节点对所述数据模块的数据处理请求,所述数据模块包括至少两个数据节点。
如图1所示,当业务节点10请求对数据模块12中的数据进行处理时,会首先将数据处理请求发送至代理模块11。例如,业务节点请求在数据模块中增加数据、删除数据、修改数据或者查询数据,则会将增加数据、删除数据、修改数据或者查询数据的请求消息发送至数据模块。
步骤S202、将所述数据处理请求发送给至少两个所述数据节点。
如图1所示,数据节点相对于业务节点来说是不可见的,业务节点的所有数据处理请求都是首先发送给代理模块,由代理模块11转发给第一数据节点d1和第二数据节点d2。
步骤S203、接收至少两个所述数据节点分别对所述数据处理请求进行处理后生成的处理结果消息。
具体的,每个数据节点在接收到数据处理请求后,会对该数据处理请求进行处理,并在处理完成后生成处理结果消息。例如,业务节点请求在数据模块中增加数据,则代理模块将该增加数据的请求转发给每个数据节点后,每个数据节点都增加完数据后,分别回复一个增加完成的处理结果消息给代理模块。
步骤S204、根据至少两个所述处理结果消息,确定目标处理结果消息,以发送至所述业务节点。
如图1所示,代理模块在接收到每个数据节点返回的处理结果消息时,会确定一个要转发给业务节点的处理结果消息作为目标处理结果消息,然后转发给业务节点。例如:代理模块可以根据接收到每个数据节点返回的处理结果消息的先后顺序,将先接收到的处理结果消息发送给业务节点,以避免重复发送处理结果消息给业务节点,同时,也能够保证业务服务的时效性。
本发明实施例通过接收所述业务节点对所述数据模块的数据处理请求,所述数据模块包括至少两个数据节点;将所述数据处理请求发送给至少两个所述数据节点;接收至少两个所述数据节点分别对所述数据处理请求进行处理后生成的处理结果消息;根据至少两个所述处理结果消息,确定目标处理结果消息,以发送至所述业务节点。由于数据模块包括至少两个数据节点,因此,代理模块能够将所述数据处理请求发送给至少两个所述数据节点,从而在其中一个数据节点发生异常时,可以正常为业务节点提供服务,也不会中途丢弃业务节点的数据,从而保证面向游戏用户的服务质量。
可选的,在本发明实施例的步骤S201接收业务节点对数据模块的数据处理请求之前,所述方法还包括:对至少两个所述数据节点设置主数据节点和从数据节点。具体的,可以是根据接收到至少两个所述数据节点发送的注册请求的先后顺序来设置主数据节点和从数据节点。例如:将先接收到的注册请求对应的数据节点设置为主数据节点,后接收到的注册请求对应的数据节点设置为从数据节点。本发明实施例中,每个数据模块中可以有一个主数据节点和多个从数据节点。
图3为本发明另一实施例提供的数据处理方法的流程图。如图3所示,对至少两个所述数据节点设置主数据节点和从数据节点,包括如下步骤:
S301、接收所述数据节点的注册请求。
具体的,如图1所示,当代理模块11、第一数据节点d1和第二数据节点d2均启动后,第一数据节点d1和第二数据节点d2会主动与代理模块11建立连接,并向代理模块11发送注册请求。在本实施例中,以接收到第一数据节点d1的注册请求为例进行说明。
S302、检测数据节点列表中是否包括主数据节点。
具体的,代理模块中会存储一个数据节点列表,用于存储对应的数据模块中每个数据节点的标识信息和状态信息。数据节点的标识信息用于唯一标识该数据节点。其中,状态信息可以包括:正在注册、开始同步数据、从数据节点和主数据节点,可选的,可以分别使用0、1、2、3来表示正在注册、开始同步数据、从数据节点和主数据节点四种状态。
S303、若所述数据节点列表不包括主数据节点,则设置所述数据节点为主数据节点。
具体的,由于第一数据节点d1是在启动后初次进行注册,因此,代理模块会检测到存储的数据节点列表为空列表,即数据节点列表不包括主数据节点,此时会直接将第一数据节点d1设置为主数据节点。设置数据节点为主数据节点可以认为是在数据节点列表中建立数据节点的标识信息与状态信息为主数据节点的对应关系。
S304、若所述数据节点列表包括主数据节点,则设置所述数据节点为从数据节点。
具体的,假设在第一数据节点d1进行注册之前,第二数据节点d2已进行注册,且代理模块已在数据节点列表中将第二数据节点d2设置为主数据节点,则在本步骤中,会检测到数据节点列表不是空列表,即记录了第一数据节点d2为主数据节点,则会在数据节点列表中记录第一数据节点d1为从数据节点。设置数据节点为从数据节点可以认为是在数据节点列表中建立数据节点的标识信息与状态信息为从数据节点的对应关系。
上述实施例通过设置主数据节点和从数据节点,从而对数据模块中数据节点进行识别,保证只有主数据节点可以对外发送主动请求消息,以及在更新或升级时,只能对从数据节点进行更新或升级,让主数据节点保证正常服务的提供。
图4为本发明另一实施例提供的数据处理方法的流程图。如图4所示,若所述数据节点列表包括主数据节点,则设置所述数据节点为从数据节点,包括如下步骤:
S401、向所述数据节点发送第一控制指令,所述第一控制指令包括所述数据节点处于正在注册的状态信息和与所述主数据节点进行数据同步的命令。
具体的,本实施例是在接收到第二数据节点d2的注册请求,并检测到数据节点列表中已存在主数据节点(第一数据节点d1)时,在数据节点列表中记录第二数据节点d2以及第二数据节点d2的状态信息为正在注册的状态信息,并同时将第二数据节点d2的状态信息为正在注册的状态信息和与所述主数据节点(第一数据节点d1)进行数据同步的命令同时发送给第二数据节点d2。其中,与所述主数据节点(第一数据节点d1)进行数据同步的命令中携带有主数据节点的标识信息,从数据节点可以根据与所述主数据节点(第一数据节点d1)进行数据同步的命令中携带的主数据节点的标识信息与主数据节点建立连接,并向主数据节点发送数据同步请求。
S402、在接收到所述主数据节点发送的数据同步完成的消息时,将所述数据节点的状态信息修改为从数据节点。
具体的,第二数据节点d2在接收到第一控制指令后,会根据第二数据节点d2的状态信息为正在注册的状态信息将自身状态修改为正在注册,并向主数据节点(第一数据节点d1)发送数据同步请求,需要说明的是,本实施例中的注册均是指启动后的初次注册,因此,第一数据节点d1和第二数据节点d2此时还没有需要同步的数据,则主数据节点(第一数据节点d1)在接收到第二数据节点d2的数据同步请求后,发送的数据同步完成的消息为不需要同步的消息,代理模块在接收到主数据节点(第一数据节点d1)发送的不需要同步的消息后,在数据节点列表中直接将所述数据节点的状态信息修改为从数据节点。
所述若所述数据节点列表包括主数据节点,则设置所述数据节点为从数据节点后,所述方法还包括:
S403,向所述数据节点发送所述数据节点为从数据节点的状态信息,以使所述数据节点更新自身的状态为从数据节点。
具体的,代理模块在数据节点列表中将所述数据节点的状态信息修改为从数据节点后,会将所述数据节点的状态信息为从数据节点发送至第二数据节点d2,第二数据节点d2接收到代理模块发送的将所述数据节点的状态信息修改为从数据节点的消息后,将自身的状态更新为从数据节点。
下面以图1所示的***架构为基础,通过一个完整示例的信令图对如图3和图4所述实施例的方法步骤进行详细说明,在本示例中,以两个数据节点(第一数据节点d1和第二数据节点d2)进行说明,且第一数据节点d1在第二数据节点d2之前发送注册请求给代理模块。应当理解的是,此处只是示意性说明,并不对本发明进行限定。
图5是本发明实施例的数据处理方法的信令图。如图5所示,该方法具体步骤如下:
S501、第一数据节点d1发送注册请求给代理模块。
S502、代理模块检测数据节点列表是否包括主数据节点。
S503、代理模块检测到数据节点列表为空列表,在数据节点列表中记录第一数据节点d1的状态信息为主数据节点。
S504、第二数据节点d2发送注册请求给代理模块。
S505、代理模块检测到数据节点列表不是空列表,在数据节点列表中记录第二数据节点d2的状态信息为正在注册,并发送第二数据节点d2的状态信息和与主数据节点进行数据同步的命令给第二数据节点d2。
S506、第二数据节点d2根据代理模块发送的第二数据节点d2的状态信息,设置自身的状态为正在注册,并向第一数据节点d1发送请求同步数据的请求消息。
S507、第一数据节点d1接收第二数据节点d2发送的请求同步数据的请求消息,发送没有数据同步的消息至代理模块。
S508、代理模块接收到第一数据节点d1发送的没有数据同步的消息,在数据节点列表中更新第二数据节点d2的状态信息为从数据节点,并将第二数据节点d2更新后的状态信息发送给第二数据节点d2。
S509、第二数据节点d2接收到代理模块发送的更新后的状态信息,更新自身状态为从数据节点。
图6为本发明另一实施例提供的数据处理方法的流程图。如图6所示,所述将所述数据处理请求发送给至少两个所述数据节点,包括如下步骤:
S601、根据所述代理模块的服务ID、所述代理模块的进程ID、当前时间戳以及自增数生成消息标识信息,所述自增数用于唯一识别所述代理模块与至少两个所述数据节点传输的消息。
具体的,如图1所示,代理模块与第一数据节点d1、第二数据节点d2在传输消息时的信息格式为:消息标识信息dsn+传输的数据data。其中,消息标识信息dsn的格式为:代理模块的服务ID+代理模块的进程ID+当前时间戳+自增数;当代理模块每与第一数据节点d1和第二数据节点d2传输一个网络消息时,自增数就会自动加1,自增数具有预定的取值范围,例如,取值范围为1~1亿,当自增数大于1亿时,自增数就会被自动置为1,并在代理模块与第一数据节点d1和第二数据节点d2传输消息时,自增数就会重新开始自动加1,以此循环。自增数用于对第一数据节点d1和第二数据节点d2发送给代理模块的消息进行去重。消息标识信息可以是例如,代理模块的服务ID为1002,代理模块的服务ID为1399,当前时间戳为12345678,自增数为213,则消息标识信息dsn=“1002|1399|12345678|213”。
S602、将所述消息标识信息与所述数据处理请求分别发送给至少两个所述数据节点。
具体的,代理模块在发送数据处理请求给第一数据节点d1和第二数据节点d2时,就会在消息中携带消息标识信息。例如:消息标识信息dsn1=“1002|1399|12345678|213”,则代理模块会将“1002|1399|12345678|213”携带在数据处理请求中,并分别发送至第一数据节点d1和第二数据节点d2。
所述接收至少两个所述数据节点分别根据所述数据处理请求进行处理得到的数据结果,包括:
S603、接收至少两个所述数据节点分别对所述数据处理请求进行处理后生成的处理结果消息,所述处理结果消息携带所述消息标识信息,以使所述代理模块根据所述消息标识信息确定目标处理结果消息。
具体的,第一数据节点d1和第二数据节点d2在接收到携带有消息标识信息的数据处理请求后,会解析得到消息标识信息和数据处理请求的内容,并根据数据处理请求进行处理,处理完成后生成处理结果消息,然后再将该处理结果消息与解析到的消息标识信息绑定并发送至代理模块。例如:第一数据节点d1将“1002|1399|12345678|213”与对数据处理请求进行处理后生成的处理结果消息绑定并返回代理模块,第二数据节点d2将“1002|1399|12345678|213”与对数据处理请求进行处理后生成的处理结果消息绑定并返回代理模块。
可选的,所述接收至少两个所述数据节点分别对所述数据处理请求进行处理后生成的处理结果消息后,所述方法还包括:查询历史消息链表中是否存在所述处理结果消息携带的自增数;如果历史消息链表中不存在所述处理结果消息携带的自增数,则将所述数据节点返回的处理结果消息确定为所述目标处理结果消息,并在所述历史消息链表中记录所述自增数。如果历史消息链表中存在所述处理结果消息携带的自增数,则将所述数据节点返回的处理结果消息丢弃。
在本实施例中,历史消息链表是一个有序的链表,用于存储代理模块与第一数据节点d1和第二数据节点d2传输消息携带的消息标识信息,从而避免重复发送消息给业务节点。对于第一数据节点d1和第二数据节点d2来说,所有的网络输入数据请求或者网络输出数据请求都是通过代理模块转发的,因此,代理模块生成的消息标识信息dsn对于第一数据节点d1和第二数据节点d2来说,具有唯一性。
本发明实施例通过代理模块生成在与第一数据节点d1和第二数据节点d2进行数据交互时的消息标识信息,从而对与第一数据节点d1和第二数据节点d2的数据交互消息进行识别,对于第一数据节点d1和第二数据节点d2都能够正常提供数据服务的情况,进行处理结果消息去重,避免对业务节点重复提供相同数据处理请求的处理结果消息,影响用户体验。
可选的,所述方法还可以包括如下步骤:接收所述数据节点的请求消息;若所述数据节点为主数据节点,则处理所述请求消息;若所述数据节点为从数据节点,则不处理所述请求消息。具体的,主数据节点和从数据节点内部会设置一个定时器事件,定时器事件产生的消息的dsn值为0,则代理模块在接收到主数据节点和从数据节点发送的主动请求消息时,解析到dsn中的自增数为0,进而会判断发送该主动请求消息的是否为主数据节点,如果是主数据节点,则就将该主动请求消息转发出去,如果是从数据节点,则丢弃该主动请求消息。例如,主数据节点和从数据节点每间隔预设时间向业务节点发送游戏用户的金币信息,则代理模块在接收到主数据节点和从数据节点发送的金币信息后,判断发送金币信息的数据节点是主数据节点还是从数据节点,如果是主数据节点,则将金币信息发送至业务节点,如果是从数据节点,则丢弃该金币信息。在本实施例中,代理模块判断数据节点是主数据节点还是从数据节点时,是通过如下方式来实现:主数据节点或从数据节点在发送主动请求消息给代理模块时,携带有主数据节点或从数据节点的标识信息,根据主动请求消息携带的标识信息,在数据节点列表中记录的数据节点的标识信息与状态信息的对应关系中查询,确定该主动请求消息携带的标识信息对应的数据节点的状态信息是主数据节点还是从数据节点。
在游戏的应用场景中,由于游戏业务市场需要频繁地添加、删除和统计游戏玩家的数据,而游戏业务需求的需求变化也较为灵活,存在很多不确定性,所以游戏业务需求较难满足。因此,就需要不时地更新和升级游戏业务的数据节点,而在更新和升级游戏业务的数据节点时,现有技术通常采用停服更新,即停止为游戏用户提供业务服务的方式来更新和升级数据节点,等更新和升级完成后,再为游戏用户统一恢复游戏服务,这样,游戏用户的服务就会中断,使得用户体验不好。
图7为本发明另一实施例提供的数据处理方法的流程图。如图7所示,所述若所述数据节点列表包括主数据节点,则设置所述数据节点为从数据节点之后,所述方法还包括:
S701、接收对所述从数据节点进行升级或更新的请求消息。
具体的,当需要对数据节点进行升级或更新时,游戏业务***的维护人员通过后台给代理模块发送退休从数据节点的指令,代理模块在接收到退休从数据节点的指令后,会发送通知从数据节点退休的消息给从数据节点,从数据节点根据通知消息设置自己的状态为退休状态,并发送确认收到通知消息的消息给代理模块,代理模块接收到确认收到通知消息的消息后,会将数据节点列表中关于从数据节点的信息删除,同时,代理模块也会与从数据节点断开链接,不再转发业务节点的数据处理请求给从数据节点。
S702、在所述从数据节点完成升级或更新后,对所述从数据节点重新进行注册。
具体的,从数据节点在接收到代理模块发送的通知消息后,会调用与退休指令相关的逻辑使自己处于退休状态,并进行升级或更新,在从数据节点升级或更新完成后,会再次向代理模块发送注册请求以请求在代理模块重新进行注册,代理模块接收到从数据节点的注册请求后,会对从数据节点重新进行注册。
S703、向所述从数据节点发送第二控制指令,所述第二控制指令包括与所述主数据节点进行数据同步的命令。其中,与所述主数据节点(第一数据节点d1)进行数据同步的命令中携带有主数据节点的标识信息(即数据节点列表中记录的主数据节点的标识信息),从数据节点可以根据与所述主数据节点(第一数据节点d1)进行数据同步的命令中携带的主数据节点的标识信息与主数据节点建立连接,并向主数据节点发送数据同步请求。
具体的,代理模块在对从数据节点重新注册后,会向从数据节点发送与主数据节点进行数据同步的命令。
S704、在接收到所述主数据节点发送的数据同步完成的消息时,将所述从数据节点设置为新的主数据节点。
具体的,在主数据节点与从数据节点完成数据同步后,代理模块会在数据节点列表中将从数据节点的状态信息更新为主数据节点。
本发明实施例通过对从数据节点进行更新或升级,让主数据节点为业务节点提供服务,并在从数据节点完成更新或升级后,与主数据节点同步数据,并恢复与业务节点的正常服务,进而再对主数据节点按照相同流程进行更新或升级,主数据节点与从数据节点更新或升级完成后,主数据节点变为从数据节点,从数据节点变为主数据节点,通过这种方式保证不停服更新,从而保证用户体验,提高游戏用户的服务质量。
可选的,所述第二控制指令还包括所述数据节点处于正在注册的状态信息;所述在接收到所述主数据节点发送的数据同步完成的消息时,将所述从数据节点设置为新的主数据节点,包括:接收所述主数据节点将第一数据同步至从数据节点后,上报的所述第一数据同步完成的消息,所述第一数据为所述主数据节点当前具有的数据;根据所述第一数据同步完成的消息,修改从数据节点的状态信息为开始同步数据;接收所述主数据节点将第二数据同步至从数据节点后,上报的所述第二数据同步完成的消息,所述第二数据是所述主数据节点在开始同步第一数据后接收到的数据;根据所述第二数据同步完成的消息,修改从数据节点的状态信息为从数据节点。在一个具体的应用场景中,游戏用户的信息可以是以key-value形式存贮在主数据节点和从数据节点中,游戏用户的标识信息为uid,游戏用户的信息采用uinfo的数据结构,游戏用户的信息包括金币、等级、经验、登陆信息、临时状态、玩家比赛、游戏等信息。在数据节点更新或升级后的数据同步过程中,可以是以游戏用户为单位,例如uid+uinfo进行数据同步。主数据节点和从数据节点采用gSyncUser来记录有数据变化的游戏用户信息,具体数据格式为:([uid:([SYNC_NO:sn,SYNC_TIME:time()])]),其中,sn是消息标识信息中的自增数,time是消息标识信息中的时间戳。gSyncUser只保存一段时间内的消息,例如保存最近12小时的消息,大于12小时的数据则删除。而由于游戏用户信息会定时刷新到数据模块db,如果进程内存没有数据,则会由数据模块db获取数据。
具体的,第一数据可以是gSyncUser存储的数据,第二数据可以是gPSyncUser存储的数据,gPSyncUser与gSyncUser的数据格式一致,gPSyncUser是在gSyncUser的数据开始同步时启用的,用来存储gSyncUser的数据开始同步后数据节点的增量数据。增量数据可以理解为业务节点发送的数据处理请求对应的数据,例如,增加数据、修改数据等。
可选的,所述根据所述第一数据同步完成的消息,修改从数据节点的状态信息为开始同步数据后,所述方法还包括:向从数据节点发送从数据节点处于开始同步数据的状态信息;发送所述业务节点的数据处理请求至从数据节点。
可选的,所述在接收到所述主数据节点发送的数据同步完成的消息时,将所述从数据节点设置为新的主数据节点之后,所述方法还包括:向所述主数据节点发送对所述主数据节点升级或更新的通知消息;在所述主数据节点完成更新或升级后,对所述主数据节点重新进行注册;向所述主数据节点发送第三控制指令,所述第三控制命令包括与所述新的主数据节点进行数据同步的命令;在接收到所述新的主数据节点发送的数据同步完成的消息时,将所述主数据节点设置为从数据节点。
可选的,所述第三控制指令还包括所述数据节点处于正在注册的状态信息;所述在接收到所述新的主数据节点发送的数据同步完成的消息时,将所述主数据节点设置为从数据节点,包括:接收所述新的主数据节点将第一数据同步至所述数据节点后,上报的所述第一数据同步完成的消息,所述第一数据为所述新的主数据节点当前具有的数据;根据所述第一数据同步完成的消息,修改所述数据节点的状态信息为开始同步数据;向所述新的主数据节点发送确认信息;接收所述新的主数据节点将第二数据同步至所述主数据节点后,上报的所述第二数据同步完成的消息,所述第二数据是所述新的主数据节点在开始同步第一数据后接收到的数据;根据所述第二数据同步完成的消息,修改所述主数据节点的状态信息为从数据节点。具体的,在将所述从数据节点设置为新的主数据节点之后,等新的主数据节点服务正常后,则开始对主数据节点进行更新或升级,主数据节点的具体更新和升级过程可参见对从数据节点的升级或更新过程,在此不再赘述。
上述实施例不仅能够实现不停服更新,而且还能够保证数据同步的完整性,即在数据同步过程中产生的新的增量数据也能够同步,并且对业务节点的数据处理请求进行处理时,能够避免再次处理自身在更新或升级过程中,重复处理主数据节点已经处理过的数据处理请求。
下面以图1所示的***架构为基础,通过一个完整示例的信令图对上述实施例对主数据节点和从数据节点进行更新或升级的方法步骤进行详细说明,在本示例中,以两个数据节点(第一数据节点d1和第二数据节点d2)进行说明,在本实施例中,第一数据节点d1为主数据节点,第二数据节点d2为从数据节点。应当理解的是,此处只是示意性说明,并不对本发明进行限定。
图8是本发明实施例的数据处理方法的信令图。如图8所示,该方法具体步骤如下:
S801、业务维护端发送将从数据节点d2退休的指令给代理模块;
S802、代理模块发送将从数据节点d2退休的指令给从数据节点d2;
S803、从数据节点接收到将从数据节点d2退休的指令后,返回确认收到退休指令的消息给代理模块;
S804、代理模块接收到从数据节点发送的确认收到通知消息的消息后,删除数据节点列表中关于从数据节点的信息;
S805、从数据节点d2设置自身状态为更新或升级状态,并调用退休指令的相关逻辑使自身处于退休状态,并在更新并重启后,发送注册请求给代理模块;
S806、代理模块接收到从数据节点d2的注册请求后,在数据节点列表中添加从数据节点d2的标识信息,并记录从数据节点d2的状态信息为正在注册;
S807、发送从数据节点d2处于正在注册的状态信息以及与主数据节点d1进行数据同步的命令给从数据节点d2;
S808、从数据节点d2根据接收到的状态信息设置自身状态为正在注册,并向主数据节点发送数据同步请求;
S809、主数据节点d1接收到数据同步请求后,开始与从数据节点d2同步数据;
S810、主数据节点d1与从数据节点d2数据同步完成后,主数据节点d1发送数据同步完成的消息给代理模块;
S811、代理模块在数据节点列表中更新从数据节点d2的状态信息为从数据节点,并开始转发业务节点的数据处理消息给从数据节点d2;
S812、在从数据节点d2服务正常后,业务维护端发送将从数据节点d2设置为主数据节点,并将主数据节点d1退休的指令给代理模块;
S813、代理模块发送将从数据节点d2设置为主数据节点的通知消息给从数据节点d2,
S814、代理模块发送将主数据节点d1退休的通知消息给主数据节点d1;
S815、主数据节点接收到将主数据节点d1退休的通知消息后,返回确认收到通知消息的消息给代理模块;
S816、代理模块接收到主数据节点d1发送的确认收到通知消息的消息后,删除数据节点列表中关于主数据节点的信息;S817、主数据节点d1设置自身状态为更新或升级状态,并调用退休指令的相关逻辑使自身处于退休状态;
S818、从数据节点d2设置自身状态为主数据节点,并开始接收代理模块转发的数据处理消息;
S819、主数据节点d1更新并重启后,发送注册请求给代理模块;
S820、代理模块接收到主数据节点d1的注册请求后,在数据节点列表中添加主数据节点d1的标识信息,并记录主数据节点d1的状态信息为正在注册;
S821、发送主数据节点d1处于正在注册的状态信息以及与新的主数据节点d2进行数据同步的命令给主数据节点d1;
S822、主数据节点d1根据接收到的状态信息设置自身状态为正在注册,并向新的主数据节点d2发送数据同步请求;
S823、新的主数据节点d2接收到数据同步请求后,开始与主数据节点d1同步数据;
S824、新的主数据节点d2与主数据节点d1数据同步完成后,新的主数据节点d2发送数据同步完成的消息给代理模块;
S825、代理模块在数据节点列表中更新主数据节点d1的状态信息为从数据节点,并开始转发业务节点的数据处理消息给从数据节点d1。
图9是本发明实施例的数据处理方法的信令图。在上述如图8所示的示例基础上,继续以如图9所示的信令图对数据同步的过程进行详细说明。在本实施例中,以从数据节点d2请求与主数据节点d1同步数据为例进行说明。如图9所示,该方法具体步骤如下:
S901、从数据节点d2接收到代理模块返回的处于正在注册的状态信息,开始初始化数据环境,并清理多余数据,然后向主数据节点d1发送数据同步的请求;
其中,多余数据是指从数据节点d2的内存中记录的游戏玩家数据,在当从数据节点d2是从主数据节点切换为从数据节点时退休了,过了段时间又修改为正常非退休状态后,从数据节点d2再次向代理模块发送注册信息,但从数据节点d2的进程内记录的游戏玩家数据可能已经被修改了的数据。由于这些数据是错误的,故需要被清理掉。
S902、主数据节点d1接收到数据同步请求后,开始与从数据节点d2同步gSyncUser的数据,并启用gPSyncUser来记录同步gSyncUser的数据的过程中接收到的增量数据;
S903、主数据节点d1将gSyncUser中的数据同步完成后,发送数据同步完成的消息给代理模块;
S904、代理模块返回确认收到数据同步完成消息的消息给主数据节点d1,并在数据节点列表中更新从数据节点d2的状态信息为开始同步数据,然后转发业务节点的数据处理请求给从数据节点d2,以及发送从数据节点d2的状态信息为开始同步数据给从数据节点d2;
S905、从数据节点d2更新自身状态为开始同步数据,并将代理模块转发的数据处理请求按照接收顺序存贮到gCacheList中;
S906,代理模块发送确认收到数据同步完成消息的消息给主数据节点d1;
S907、主数据节点d1收到代理模块的确认信息后,开始与从数据节点d2同步gPSyncUser的数据,并将主数据节点d1处理的最后一条数据处理消息的消息标识信息(即最大消息标识信息)发送给从数据节点d2;
S908、主数据节点d1将gPSyncUser中的数据同步完成后,删除gPSyncUser中的数据,并发送数据同步完成的消息给代理模块;
S909、从数据节点d2将gPSyncUser中的数据同步完成后,按照接收顺序将gCacheList中消息的消息标识信息与主数据节点d1发送的消息标识信息进行比较,并处理消息标识信息大于主数据节点d1发送的消息标识信息的数据处理请求。
图10是本发明实施例的一种数据处理方法流程图。如图10所示,一种数据处理方法,可以应用于主数据节点,也可以应用于从数据节点,所述方法包括如下具体步骤:
S100、接收代理模块转发的业务节点的数据处理请求;
具体的,当业务节点有数据处理请求时,会首先发送至代理模块,由代理模块转发至主数据节点或从数据节点。
S101、对所述数据处理请求进行处理,并生成处理结果消息;
具体的,主数据节点或从数据节点在接收到代理模块转发的数据处理请求后,会对数据处理请求进行处理,并在处理完毕后生成处理结果消息以告知业务节点数据处理已完成。
S102、发送处理结果消息至代理模块。
具体的,主数据节点或从数据节点处理完毕后生成处理结果消息以告知业务节点数据处理已完成,以使代理模块根据如图2所示的实施例的方法步骤确定目标处理结果消息,并转发目标处理结果消息给业务节点。
可选的,所述数据模块包括主数据节点和从数据节点,所述方法应用于所述主数据节点;所述接收代理模块转发的业务节点的数据处理请求之前,所述方法还包括:发送将数据节点在所述代理模块进行注册的注册请求;接收所述代理模块在所述数据节点列表不包括主数据节点时,发送的将所述数据节点设置为主数据节点的消息;根据所述代理模块在所述数据节点列表不包括主数据节点时发送的将所述数据节点设置为主数据节点的消息,设置所述数据节点为主数据节点。本实施例的方法步骤执行主体是主数据节点,是在如图10所示实施例的步骤S100之前,主数据节点在代理模块上进行注册的过程。
可选的,所述数据模块包括主数据节点或从数据节点;所述接收代理模块转发的业务节点的数据处理请求,包括:接收代理模块根据所述数据处理请求生成的消息标识信息与所述数据处理请求;所述发送所述处理结果消息至代理模块,包括:将所述消息标识信息与所述处理结果消息发送至代理模块。本实施例的执行主体是主数据节点或从数据节点,主数据节点和从数据节点在与代理模块进行消息传输的时候,均携带有消息标识信息,以使代理模块对转发给业务节点的处理结果消息进行去重。
可选的,所述根据所述代理模块在所述数据节点列表不包括主数据节点时发送的将所述数据节点设置为主数据节点的消息,设置所述数据节点为主数据节点后,所述方法还包括:接收从数据节点完成更新或升级后发送的数据同步请求;与所述从数据节点进行数据同步;在数据同步完成后,上报数据同步完成的消息至所述代理模块,以使所述代理模块将所述从数据节点的状态信息修改为新的主数据节点。在实施例中,是对主数据节点或从数据节点进行更新或升级,在升级或更新的时候涉及到数据同步,即从数据节点更新或升级时,由主数据节点为业务节点提供服务,在从数据节点更新或升级完成后,需要与主数据节点进行数据同步,在数据同步完成后,再将从数据节点设置为新的主数据节点,并对主数据节点进行升级或更新,升级或更新的过程与从数据节点相同。
可选的,所述接收从数据节点完成更新或升级后发送的数据同步请求之后,所述方法还包括:与所述从数据节点同步第一数据;上报第一数据同步完成的消息至所述代理模块,所述第一数据为所述主数据节点当前具有的数据;在接收到所述代理模块返回的确认信息时,与所述从数据节点同步第二数据,所述第二数据是所述主数据节点在开始同步第一数据后接收到的数据;上报第二数据同步完成的消息至所述代理模块,以使所述代理模块设置所述数据节点为从数据节点。在本实施例中,执行主体为主数据节点。
可选的,所述数据模块包括主数据节点和从数据节点,所述方法应用于所述主数据节点;所述接收代理模块转发的业务节点的数据处理请求之前,所述方法还包括:发送将数据节点在所述代理模块进行注册的注册请求;接收所述代理模块在所述数据节点列表包括主数据节点时,发送的将所述数据节点设置为从数据节点的消息;根据所述代理模块在所述数据节点列表包括主数据节点时发送的将所述数据节点设置为从数据节点的消息,设置所述数据节点为从数据节点。
可选的,根据所述代理模块在所述数据节点列表包括主数据节点时发送的将所述数据节点设置为从数据节点的消息,设置所述数据节点为从数据节点后,所述方法还包括:根据接收到的对所述从数据节点进行更新或升级的通知消息,进行更新或升级;发送将所述从数据节点在所述代理模块重新进行注册的注册请求;接收代理模块发送的第二控制指令,所述第二控制指令包括与所述主数据节点进行数据同步的命令;接收所述代理模块根据所述主数据节点发送的数据同步完成的消息发送的将所述从数据节点设置为新的主数据节点的消息;设置自身状态为新的主数据节点。
可选的,所述第二控制指令还包括所述从数据节点处于正在注册状态的状态信息;所述接收代理模块发送的第二控制指令后,所述方法还包括:向所述主数据节点发送数据同步的请求;将所述主数据节点发送的第一数据进行同步,所述第一数据为所述主数据节点当前具有的数据;接收所述代理模块在接收到所述主数据节点上报的第一数据同步完成的消息时发送的所述数据节点处于开始同步数据的状态信息;修改自身状态信息为开始同步数据;将所述主数据节点发送的第二数据进行同步,所述第二数据是所述主数据节点在开始同步第一数据后接收到的数据;接收所述代理模块在接收到所述主数据节点上报的第二数据同步完成的消息时发送的所述数据节点处于新的主数据节点的状态信息;修改自身状态信息为新的主数据节点。
可选的,所述修改自身状态为开始同步数据后,所述方法还包括:将所述代理模块转发的数据处理请求缓存,其中,数据处理请求携带有消息标识信息;所述修改自身状态为新的主数据节点后,所述方法还包括:处理所述消息标识信息大于最大消息标识信息的缓存的数据处理请求,所述最大消息标识信息是所述主数据节点在数据同步完成时发送给所述从数据节点的。在处理缓存的数据处理请求时,是对消息标识信息大于主数据节点在数据同步完成时发送的消息标识信息的数据处理请求进行处理,从而防止对主数据节点已经处理过的数据处理请求再次进行处理。
对于图10所示实施例及之后介绍的实施例可参见如图1-9介绍的实施例,在此不再赘述。
图11是本发明实施例的数据处理装置的结构示意图。如图11所示,一种数据处理装置,包括:第一接收模块110、第一发送模块111、确定模块112;其中,第一接收模块110,用于接收所述业务节点对所述数据模块的数据处理请求,所述数据模块包括至少两个数据节点;第一发送模块111,用于将所述数据处理请求发送给至少两个所述数据节点;所述第一接收模块110,还用于接收至少两个所述数据节点分别根据所述数据处理请求进行处理发送的处理结果消息;确定模块112,用于根据至少两个所述处理结果消息,确定目标处理结果消息,以发送至所述业务节点。
图12是本发明实施例的服务器的结构示意图。如图12所示,一种服务器,包括:第二接收模块120、数据获取模块121、第二发送模块122;其中,第二接收模块120,用于接收代理模块转发的业务节点的数据处理请求;数据获取模块121,用于对所述数据处理请求进行处理,并生成处理结果消息;第二发送模块122,用于发送处理结果消息至代理模块。
图13为本发明实施例提供的一种电子设备的结构示意图。本发明实施例提供的电子设备可以执行如图2-9所述数据处理方法实施例提供的处理流程,如图13所示,电子设备包括存储器131、处理器132、计算机程序和通讯接口133;其中,计算机程序存储在存储器131中,并被配置为由处理器132执行以上如图2-9所述实施例的数据处理方法。图13所示实施例的电子设备可用于执行上述如图2-9方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图14为本发明实施例提供的一种服务器的结构示意图。本发明实施例提供的服务器可以执行如图10所述数据处理方法实施例提供的处理流程,如图14所示,服务器包括存储器141、处理器142、计算机程序和通讯接口143;其中,计算机程序存储在存储器141中,并被配置为由处理器142执行以上如图10所述实施例的数据处理方法。图10所示实施例的服务器可用于执行上述如图10方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
另外,本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现上述如图1-图10实施例所述的数据处理方法。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本发明旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
Claims (25)
1.一种数据处理方法,其特征在于,应用于代理模块,所述代理模块分别与业务节点和数据模块连接,所述业务节点通过所述代理模块与所述数据模块通信,所述方法包括:
接收所述业务节点对所述数据模块的数据处理请求,所述数据模块包括至少两个数据节点;
将所述数据处理请求发送给至少两个所述数据节点;
接收至少两个所述数据节点分别对所述数据处理请求进行处理后生成的处理结果消息;
根据至少两个所述处理结果消息,确定目标处理结果消息,以发送至所述业务节点。
2.根据权利要求1所述的方法,其特征在于,所述接收业务节点对数据模块的数据处理请求之前,所述方法还包括:
对至少两个所述数据节点设置主数据节点和从数据节点。
3.根据权利要求2所述的方法,其特征在于,所述对至少两个所述数据节点设置主数据节点和从数据节点,包括:
接收所述数据节点的注册请求;
检测数据节点列表中是否包括主数据节点;
若所述数据节点列表不包括主数据节点,则设置所述数据节点为主数据节点;
若所述数据节点列表包括主数据节点,则设置所述数据节点为从数据节点。
4.根据权利要求3所述的方法,其特征在于,所述若所述数据节点列表包括主数据节点,则设置所述数据节点为从数据节点,包括:
向所述数据节点发送第一控制指令,所述第一控制指令包括所述数据节点处于正在注册的状态信息和与所述主数据节点进行数据同步的命令;
在接收到所述主数据节点发送的数据同步完成的消息时,将所述数据节点的状态信息修改为从数据节点;
所述若所述数据节点列表包括主数据节点,则设置所述数据节点为从数据节点后,所述方法还包括:
向所述数据节点发送所述数据节点为从数据节点的状态信息,以使所述数据节点更新自身的状态为从数据节点。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述将所述数据处理请求发送给至少两个所述数据节点,包括:
根据所述代理模块的服务ID、所述代理模块的进程ID、当前时间戳以及自增数生成消息标识信息,所述自增数用于唯一识别所述代理模块与至少两个所述数据节点传输的消息;
将所述消息标识信息与所述数据处理请求分别发送给至少两个所述数据节点;
所述接收至少两个所述数据节点分别对所述数据处理请求进行处理后生成的处理结果消息,包括:
接收至少两个所述数据节点分别对所述数据处理请求进行处理后生成的处理结果消息,所述处理结果消息携带所述消息标识信息,以使所述代理模块根据所述消息标识信息确定目标处理结果消息。
6.根据权利要求5所述的方法,其特征在于,所述接收至少两个所述数据节点分别对所述数据处理请求进行处理后生成的处理结果消息后,所述方法还包括:
查询历史消息链表中是否存在所述处理结果消息携带的所述自增数;
如果历史消息链表中不存在所述处理结果消息携带的所述自增数,则将所述数据节点返回的处理结果消息确定为所述目标处理结果消息,并在所述历史消息链表中记录所述自增数。
7.根据权利要求2所述的方法,其特征在于,所述对至少两个所述数据节点设置主数据节点和从数据节点后,所述方法还包括:
接收所述数据节点的请求消息;
若所述数据节点为主数据节点,则处理所述请求消息;
若所述数据节点为从数据节点,则不处理所述请求消息。
8.根据权利要求3或4所述的方法,其特征在于,所述若所述数据节点列表包括主数据节点,则设置所述数据节点为从数据节点之后,所述方法还包括:
接收对所述从数据节点进行升级或更新的请求消息;
在所述从数据节点完成更新或升级后,对所述从数据节点重新进行注册;
向所述从数据节点发送第二控制指令,所述第二控制指令包括与所述主数据节点进行数据同步的命令;
在接收到所述主数据节点发送的数据同步完成的消息时,将所述从数据节点设置为新的主数据节点。
9.根据权利要求8所述的方法,其特征在于,所述在接收到所述主数据节点发送的数据同步完成的消息时,将所述从数据节点设置为新的主数据节点之后,所述方法还包括:
向所述主数据节点发送对所述主数据节点升级或更新的通知消息;
在所述主数据节点完成更新或升级后,对所述主数据节点重新进行注册;
向所述主数据节点发送第三控制指令,所述第三控制指令包括与所述新的主数据节点进行数据同步的命令;
在接收到所述新的主数据节点发送的数据同步完成的消息时,将所述主数据节点设置为从数据节点。
10.根据权利要求8所述的方法,其特征在于,所述第二控制指令还包括所述数据节点处于正在注册的状态信息;
所述在接收到所述主数据节点发送的数据同步完成的消息时,将所述从数据节点设置为新的主数据节点,包括:
接收所述主数据节点将第一数据同步至所述从数据节点后,上报的所述第一数据同步完成的消息,所述第一数据为所述主数据节点当前具有的数据;
根据所述第一数据同步完成的消息,修改所述从数据节点的状态信息为开始同步数据;
接收所述主数据节点将第二数据同步至所述从数据节点后,上报的所述第二数据同步完成的消息,所述第二数据是所述主数据节点在开始同步第一数据后接收到的数据;
根据所述第二数据同步完成的消息,修改所述从数据节点的状态信息为新的主数据节点。
11.根据权利要求10所述的方法,其特征在于,所述根据所述第一数据同步完成的消息,修改所述从数据节点的状态信息为开始同步数据后,所述方法还包括:
向所述从数据节点发送所述从数据节点处于开始同步数据的状态信息;
发送所述业务节点的数据处理请求至所述从数据节点。
12.一种数据处理方法,其特征在于,应用于数据模块,所述方法包括:
所述数据模块包括至少两个数据节点;
所述至少两个数据节点接收代理模块转发的业务节点的数据处理请求;
所述至少两个数据节点对所述数据处理请求进行处理,并生成处理结果消息;
所述至少两个数据节点发送所述处理结果消息至所述代理模块。
13.根据权利要求12所述的方法,其特征在于,
所述接收代理模块转发的业务节点的数据处理请求之前,所述方法还包括:
发送将所述数据节点在所述代理模块进行注册的注册请求;
接收所述代理模块在数据节点列表不包括主数据节点时,发送的将所述数据节点设置为主数据节点的消息;
根据所述代理模块在数据节点列表不包括主数据节点时发送的将所述数据节点设置为主数据节点的消息,设置所述数据节点为主数据节点。
14.根据权利要求12所述的方法,其特征在于,所述数据模块包括主数据节点或从数据节点;
所述接收代理模块转发的业务节点的数据处理请求,包括:
接收代理模块根据所述数据处理请求生成的消息标识信息与所述数据处理请求;
所述发送所述处理结果消息至所述代理模块,包括:
将所述消息标识信息与所述处理结果消息发送至所述代理模块。
15.根据权利要求13所述的方法,其特征在于,所述数据模块包括主数据节点和从数据节点;所述方法应用于所述主数据节点;
所述根据所述代理模块在数据节点列表不包括主数据节点时发送的将所述数据节点设置为主数据节点的消息,设置所述数据节点为主数据节点后,所述方法还包括:
接收所述从数据节点完成更新或升级后发送的数据同步请求;
与所述从数据节点进行数据同步;
在数据同步完成后,上报数据同步完成的消息至所述代理模块,以使所述代理模块将所述从数据节点的状态信息修改为新的主数据节点。
16.根据权利要求15所述的方法,其特征在于,所述接收所述从数据节点完成更新或升级后发送的数据同步请求之后,所述方法还包括:
与所述从数据节点同步第一数据;
上报第一数据同步完成的消息至所述代理模块,所述第一数据为所述主数据节点当前具有的数据;
与所述从数据节点同步第二数据,所述第二数据是所述主数据节点在开始同步第一数据后接收到的数据;
上报第二数据同步完成的消息至所述代理模块,以使所述代理模块设置所述数据节点为从数据节点。
17.根据权利要求13所述的方法,其特征在于,所述数据模块包括至少两个数据节点,所述方法应用于所述数据节点;
所述接收代理模块转发的业务节点的数据处理请求之前,所述方法还包括:
发送将所述数据节点在所述代理模块进行注册的注册请求;
接收所述代理模块在数据节点列表包括主数据节点时,发送的将所述数据节点设置为从数据节点的消息;
根据所述代理模块在数据节点列表包括主数据节点时发送的将所述数据节点设置为从数据节点的消息,设置所述数据节点为从数据节点。
18.根据权利要求17所述的方法,其特征在于,根据所述代理模块在数据节点列表包括主数据节点时发送的将所述数据节点设置为从数据节点的消息,设置所述数据节点为从数据节点后,所述方法还包括:
根据接收到的对所述从数据节点进行更新或升级的通知消息,进行更新或升级;
发送将所述从数据节点在所述代理模块重新进行注册的注册请求;
接收所述代理模块发送的第二控制指令,所述第二控制指令包括与所述主数据节点进行数据同步的命令;
接收所述代理模块根据所述主数据节点发送的数据同步完成的消息发送的将所述从数据节点设置为新的主数据节点的消息;
设置自身状态为新的主数据节点。
19.根据权利要求18所述的方法,其特征在于,所述第二控制指令还包括所述从数据节点处于正在注册状态的状态信息;
所述接收代理模块发送的第二控制指令后,所述方法还包括:
向所述主数据节点发送数据同步的请求;
将所述主数据节点发送的第一数据进行同步,所述第一数据为所述主数据节点当前具有的数据;
接收所述代理模块在接收到所述主数据节点上报的第一数据同步完成的消息时发送的所述数据节点处于开始同步数据的状态信息;
修改自身状态信息为开始同步数据;
将所述主数据节点发送的第二数据进行同步,所述第二数据是所述主数据节点在开始同步所述第一数据后接收到的数据;
接收所述代理模块在接收到所述主数据节点上报的第二数据同步完成的消息时发送的所述数据节点处于新的主数据节点的状态信息;
修改自身状态信息为新的主数据节点。
20.根据权利要求19所述的方法,其特征在于,所述修改自身状态为开始同步数据后,所述方法还包括:
将所述代理模块转发的数据处理请求缓存,所述数据处理请求携带消息标识信息;
所述修改自身状态为新的主数据节点后,所述方法还包括:
处理所述消息标识信息大于最大消息标识信息的缓存的数据处理请求,所述最大消息标识信息是所述主数据节点在数据同步完成时发送给所述从数据节点的。
21.一种数据处理装置,其特征在于,包括:
第一接收模块,用于接收业务节点对数据模块的数据处理请求,所述数据模块包括至少两个数据节点;
第一发送模块,用于将所述数据处理请求发送给至少两个所述数据节点;
所述第一接收模块,还用于接收至少两个所述数据节点分别根据所述数据处理请求进行处理发送的处理结果消息;
确定模块,用于根据至少两个所述处理结果消息,确定目标处理结果消息,以发送至所述业务节点。
22.一种服务器,其特征在于,包括:至少两个数据节点;
第二接收模块,用于所述至少两个数据节点接收代理模块转发的业务节点的数据处理请求;
数据处理及生成模块,用于所述至少两个数据节点对所述数据处理请求进行处理,并生成处理结果消息;
第二发送模块,用于所述至少两个数据节点发送所述处理结果消息至所述代理模块。
23.一种电子设备,其特征在于,包括:存储器,处理器;
存储器;用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述处理器可执行指令以实现如权利要求1-11中任一项所述的方法。
24.一种服务器,其特征在于,包括:存储器,处理器;
存储器;用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述处理器可执行指令以实现如权利要求12-20中任一项所述的方法。
25.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至20任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910372153.1A CN110120889B (zh) | 2019-05-06 | 2019-05-06 | 数据处理方法、设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910372153.1A CN110120889B (zh) | 2019-05-06 | 2019-05-06 | 数据处理方法、设备及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110120889A CN110120889A (zh) | 2019-08-13 |
CN110120889B true CN110120889B (zh) | 2022-05-20 |
Family
ID=67521838
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910372153.1A Active CN110120889B (zh) | 2019-05-06 | 2019-05-06 | 数据处理方法、设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110120889B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112245906B (zh) * | 2020-11-18 | 2023-08-25 | 腾讯科技(深圳)有限公司 | 数据同步方法、装置、电子设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105956481A (zh) * | 2015-09-17 | 2016-09-21 | ***股份有限公司 | 一种数据处理方法及其装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101309167B (zh) * | 2008-06-27 | 2011-04-20 | 华中科技大学 | 基于集群备份的容灾***及方法 |
CN104050249B (zh) * | 2011-12-31 | 2018-03-30 | 北京奇虎科技有限公司 | 分布式查询引擎***和方法及元数据服务器 |
CN104539681B (zh) * | 2014-12-23 | 2018-04-13 | 北京超图软件股份有限公司 | 分布式gis加速***和gis服务的处理方法 |
CN106921730B (zh) * | 2017-01-24 | 2019-08-30 | 腾讯科技(深圳)有限公司 | 一种游戏服务器的切换方法和*** |
KR102016468B1 (ko) * | 2017-09-27 | 2019-09-02 | 주식회사 포에스텍 | 미들웨어 서버 및 이의 데이터 처리 방법 |
-
2019
- 2019-05-06 CN CN201910372153.1A patent/CN110120889B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105956481A (zh) * | 2015-09-17 | 2016-09-21 | ***股份有限公司 | 一种数据处理方法及其装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110120889A (zh) | 2019-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107295080B (zh) | 应用于分布式服务器集群的数据存储方法和服务器 | |
CN109729111B (zh) | 用于管理分布式***的方法、设备和计算机程序产品 | |
CN108667899B (zh) | 多终端消息同步和隔离即时通讯方法及*** | |
CN107391276B (zh) | 分布式监听方法、监听控制装置及*** | |
CN101436209B (zh) | 一种多数据库同步的方法和装置 | |
CN109547524B (zh) | 基于物联网的用户行为存储方法、装置、设备及存储介质 | |
CN103024065A (zh) | 用于云存储***的***配置管理方法 | |
CN110825772A (zh) | 多个服务实例的内存数据的同步方法、装置及存储介质 | |
CN113051110A (zh) | 集群切换方法、装置及设备 | |
CN112367198B (zh) | 主备节点切换方法及装置 | |
CN110120889B (zh) | 数据处理方法、设备及计算机存储介质 | |
CN106557522B (zh) | 一种用于提供定时功能的方法与设备 | |
CN110113495A (zh) | App的远程控制方法、装置、电子设备及*** | |
CN111885103B (zh) | 资源处理方法、服务器、电子设备及存储介质 | |
CN101765203A (zh) | 终端定位方法、定位服务器、终端设备及网络*** | |
CN111352959A (zh) | 数据同步补救、存储方法及集群装置 | |
CN112787868B (zh) | 一种信息同步的方法和装置 | |
CN110659299B (zh) | 数据更新的方法及装置、前端开发客户端 | |
CN111316606A (zh) | 控制器-交换机网络中的优化调和 | |
CN111182014B (zh) | 一种数据同步方法和装置 | |
CN112256484A (zh) | 一种数据备份的方法、装置和*** | |
CN114981796A (zh) | 数据同步方法、装置、数据存储***及计算机可读介质 | |
CN107995022B (zh) | 会话同步方法及装置、存储介质、电子设备 | |
JP2015153285A (ja) | 冗長化データベースシステム、データベース装置及びマスタ交代方法 | |
CN118075098A (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 |