CN112245906A - 数据同步方法、装置、电子设备及存储介质 - Google Patents
数据同步方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112245906A CN112245906A CN202011294567.6A CN202011294567A CN112245906A CN 112245906 A CN112245906 A CN 112245906A CN 202011294567 A CN202011294567 A CN 202011294567A CN 112245906 A CN112245906 A CN 112245906A
- Authority
- CN
- China
- Prior art keywords
- data
- synchronization
- target
- receiving process
- receiving
- 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.)
- Granted
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请实施例公开了一种数据同步方法、装置、电子设备及存储介质。该方法包括:接收来自数据发送进程的同步消息,同步消息包括至少一个数据类型的源数据对应的更新数据,同步消息是数据发送进程内保存的至少一个数据类型的源数据发生更新后生成的;调用数据同步模块,获取同步消息中与目标数据类型标识对应的目标更新数据;基于数据同步模块提供的数据同步接口以及目标更新数据,对目标更新数据对应的数据进行同步。该方法的数据接收进程可以根据目标数据类型标识按需获取对应的更新数据,在对保存的数据进行同步时不会获取本进程用不到的更新数据,可以减少数据接收进程进行相应的数据同步处理时的内存占用。
Description
技术领域
本申请涉及计算机技术领域,更具体地,涉及一种数据同步方法、装置、电子设备及存储介质。
背景技术
进程(Process)源数据是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。一些进程在运行中,需要用到其他数据源进程维护的源数据,由于数据源进程维护的源数据是更新变化的,因此,为了保证数据一致性,这些进程就需要基于数据源进程维护的源数据进行相应的数据同步处理。然而,相关技术中,在这些进程基于数据源进程维护的源数据进行相应的数据同步处理的过程中,存在内存占用大的问题。
发明内容
鉴于上述问题,本申请实施例提出了一种数据同步方法、装置、电子设备及存储介质,以改善上述问题。
第一方面,本申请实施例提供了一种数据同步方法,应用于数据接收进程,数据接收进程注册有数据同步模块,数据同步模块注册有目标数据类型标识,方法包括:接收来自数据发送进程的同步消息,同步消息包括至少一个数据类型的源数据对应的更新数据,同步消息是数据发送进程内保存的至少一个数据类型的源数据发生更新后生成的;调用数据同步模块,获取同步消息中与目标数据类型标识对应的目标更新数据;基于数据同步模块提供的数据同步接口以及目标更新数据,对目标更新数据对应的数据进行同步。
第二方面,本申请实施例提供了一种数据同步方法,应用于数据发送进程,方法包括:在数据发送进程内保存的至少一个数据类型的源数据发生更新后,生成同步消息,同步消息包括至少一个数据类型的源数据对应的更新数据;向数据接收进程发送同步消息,以使数据接收进程在接收到同步消息时,基于注册的数据同步模块提供的数据同步接口以及目标更新数据,对目标更新数据对应的数据进行同步,目标更新数据为数据接收进程调用数据同步模块,获取的同步消息中与数据同步模块注册的目标数据类型标识对应的数据。
第三方面,本申请实施例提供了一种数据同步方法,应用于数据路由进程,方法包括:接收来自数据发送进程的同步消息,同步消息包括至少一个数据类型的源数据对应的更新数据,同步消息是数据发送进程内保存的至少一个数据类型的源数据发生更新后生成的;根据第一路由信息向数据接收进程转发同步消息,以使数据接收进程基于注册的数据同步模块提供的数据同步接口以及目标更新数据,对目标更新数据对应的数据进行同步,目标更新数据为数据接收进程调用数据同步模块,获取的同步消息中与数据同步模块注册的目标数据类型标识对应的数据,第一路由信息是根据数据接收进程发送的数据同步凭证生成的。
第四方面,本申请实施例提供了一种数据同步装置,应用于数据接收进程,数据接收进程注册有数据同步模块,数据同步模块注册有目标数据类型标识,装置包括:同步消息第一接收模块,用于接收来自数据发送进程的同步消息,同步消息包括至少一个数据类型的源数据对应的更新数据,同步消息是数据发送进程内保存的至少一个数据类型的源数据发生更新后生成的;目标更新数据获取模块,用于调用数据同步模块,获取同步消息中与目标数据类型标识对应的目标更新数据;更新模块,用于基于数据同步模块提供的数据同步接口以及目标更新数据,对目标更新数据对应的数据进行同步。
第五方面,本申请实施例提供了一种数据同步装置,应用于数据发送进程,装置包括:同步消息生成模块,用于在数据发送进程内保存的至少一个数据类型的源数据发生更新后,生成同步消息,同步消息包括至少一个数据类型的源数据对应的更新数据;同步消息发送模块,用于向数据接收进程发送同步消息,以使数据接收进程在接收到同步消息时,基于注册的数据同步模块提供的数据同步接口以及目标更新数据,对目标更新数据对应的数据进行同步,目标更新数据为数据接收进程调用数据同步模块,获取的同步消息中与数据同步模块注册的目标数据类型标识对应的数据。
第六方面,本申请实施例提供了一种数据同步装置,应用于路由进程,装置包括:同步消息第二接收模块,用于接收来自数据发送进程的同步消息,同步消息包括至少一个数据类型的源数据对应的更新数据,同步消息是数据发送进程内保存的至少一个数据类型的源数据发生更新后生成的;同步消息转发模块,用于根据第一路由信息向数据接收进程转发同步消息,以使数据接收进程基于注册的数据同步模块提供的数据同步接口以及目标更新数据,对目标更新数据对应的数据进行同步,目标更新数据为数据接收进程调用数据同步模块,获取的同步消息中与数据同步模块注册的目标数据类型标识对应的数据,第一路由信息是根据数据接收进程发送的数据同步凭证生成的。
第七方面,本申请实施例提供了一种电子设备,包括处理器以及存储器;一个或多个程序被存储在存储器中并被配置为由处理器执行以实现上述的方法。
第八方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质中存储有程序代码,其中,在程序代码被处理器运行时执行上述的方法。
第九方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的方法。
本申请实施例提供的一种数据同步方法、装置、电子设备及存储介质,数据接收进程可以先接收来自数据发送进程的同步消息,然后调用数据同步模块,获取同步消息中与目标数据类型标识对应的目标更新数据,再基于数据同步模块提供的数据同步接口以及目标更新数据,对目标更新数据对应的数据进行同步。由于数据接收进程不需要提前向数据发送进程发起数据请求并等待回复,属于同步方案,因此可以改善异步方案面临的网络性能消耗大、开发效率低等问题,并且,数据接收进程可以在接收到数据发送进程发送的同步消息之后,调用数据同步模块从同步消息中获取与数据同步模块注册的目标数据类型标识对应的目标更新数据,即在数据接收进程可以实现根据目标数据类型标识按需获取对应的更新数据,如此,数据接收进程在对保存的数据进行同步时不会获取本进程用不到的更新数据,相较于相关技术中的同步方案,内存占用更小。此外,采用在数据接收模块内部注册数据同步模块,以及在数据同步模块内注册目标数据类型标识的方式,使得数据接收进程能够根据需要注册目标数据类型,实现灵活插装,简化了代码编写,减少了数据接收进程漏洞产生的概率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请一实施例所涉及的应用环境的示意图;
图2示出了本申请一实施例所涉及的另一种应用环境的示意图;
图3示出了本申请一实施例所涉及的数据发送进程的结构示意图;
图4示出了本申请一实施例所涉及的数据接收进程的结构示意图;
图5示出了本申请一实施例提出的一种数据同步方法的流程图;
图6示出了本申请另一实施例提出的一种数据同步方法的流程图;
图7示出了本申请一实施例提出的一种内存空间分配示意图;
图8示出了本申请一实施例提出的一种数据同步方法的场景架构示意图;
图9示出了本申请另一实施例提出的一种数据同步方法的流程图;
图10示出了本申请另一实施例提出的一种数据同步方法的流程图;
图11示出了本申请另一实施例提出的一种数据同步方法的流程图;
图12示出了本申请一实施例提出的另一种内存空间分配示意图;
图13示出了本申请另一实施例提出的一种数据同步方法的流程图;
图14示出了本申请另一实施例提出的一种数据同步方法的流程图;
图15示出了本申请另一实施例提出的一种数据同步方法的流程图;
图16示出了本申请一实施例提出的一种交互过程示意图;
图17示出了本申请另一实施例提出的一种数据同步方法的流程图;
图18示出了本申请另一实施例提出的一种交互过程示意图;
图19示出了本申请另一实施例提出的一种数据同步方法的流程图;
图20示出了本申请实施例提出的一种数据同步前帮派界面前端显示示意图;
图21示出了本申请实施例提出的一种数据同步后帮派界面前端显示示意图;
图22示出了本申请实施例提出的一种数据同步前前端界面拍卖玩法对应的可拍卖物品示意图;
图23示出了本申请实施例提出的一种数据同步后前端界面拍卖玩法对应的可拍卖物品示意图;
图24示出了本申请一实施例提出的一种数据同步装置的框图;
图25示出了本申请另一实施例提出的一种数据同步装置的框图;
图26示出了本申请另一实施例提出的一种数据同步装置的框图;
图27示出了用于执行根据本申请实施例的数据同步方法的另一种电子设备的结构框图;
图28示出了本申请实施例的用于保存或者携带实现根据本申请实施例的数据同步方法的程序代码的存储单元。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。一些进程在运行时,数据集合中的数据来自于其他进程维护的源数据,这时,维护源数据的其他进程可以看作是数据源进程。其中,源数据可以理解为由数据源进程维护的,供其他进程使用的数据。
例如,数据使用场景,以游戏数据使用场景中的帮派类数据为例,帮派类数据位于社交进程(Social进程)上,其他玩法进程如拍卖行进程(Auction进程)、场景进程(Scene进程),均需要使用到社交进程上的帮派类数据,此时,社交进程的帮派类数据中的各个数据类型的数据分别可以理解为一个数据类型的源数据,并且其他玩法进程所需的帮派类数据的数据类型不同,即其他玩法进程所需的源数据不同。例如,场景进程需要的源数据为帮派基础数据和成员数据,拍卖进程需要的源数据为使用帮派基础数据。
又例如,数据推送场景,以某个游戏的活动数据推送为例,活动类数据位于游戏服务器的活动进程上,不同国家或者区域的客户端的游戏进程需要使用游戏服务器的活动类数据,对本国或者本区域的活动状态或者活动详情等进行同步,此时,活动进程的活动数据中的各个数据类型的数据分别可以理解为一个数据类型的源数据,并且,不同国家或者地区所需的活动数据的种类也不同,即不同国家或者地区所需的源数据的种类也不同。例如,美国的游戏进程需要的源数据为万圣节活动数据等,中国的游戏进程需要的源数据为春节活动数据等。
可以理解的是,不论是帮派类数据还是活动类数据,均是更新变化的,例如,用户在游戏中对帮派的相关操作会导致社交进程上的帮派类数据变化,游戏策划在服务器中编辑活动详情,会导致服务器活动进程中的活动类数据变化,为了保证各个进程中数据的一致性,拍卖行进程以及场景进程就需要基于社交进程维护的帮派类数据中的源数据进行相应的数据同步处理,不同国家或者区域的客户端的游戏进程需要根据游戏服务器的活动进程维护的活动类数据中的源数据,对本国或者本或者区域的活动状态或者活动详情等进行同步。
对应的,相关技术中在基于数据源进程维护的源数据进行相应的数据同步处理时,主要存在以下两种处理方法。
一种处理方法是:拍卖行进程、场景进程或者游戏进程等其他需要使用源数据源的进程,在需要用到帮派数据的时候,实时的向数据源进程(例如社交进程)发起源数据请求,数据源进程收到请求后,将源数据回复给请求方。由于需要等待数据源进程的源数据回复包,所以是一种异步方式,异步请求方式不仅消耗较多的网络性能,而且对开发者不够友好,需要保存请求的上下文,同时需要处理由于网络、硬件等原因异步流程中断的情况,影响开发效率。
另一种处理方法是:数据源进程在自身维护的源数据发生变化时,主动将源数据发送至拍卖行进程、场景进程或者游戏进程等其他需要使用源数据的进程,并缓存在这些进程中。如此,这些进程可以在本进程内直接获取最新的源数据,保证了数据的一致性,并且也改善了解决异步方式的网络性能消耗以及开发效率问题。但是经过发明人研究发现,该处理方法无法区分不同进程所需的源数据的数据类型,而是全部分配所有数据类型,各个进程缓存了本进程不会用到的数据,带来较大的内存占用。
基于上述发现,发明人提出了本申请实施例提供的数据同步方法、装置、电子设备及存储介质,在该方法中,数据接收进程可以先接收来自数据发送进程的同步消息,然后获取同步消息中与目标数据类型标识对应的目标更新数据,再基于目标更新数据,对自身保存的与目标更新数据对应的数据进行同步。
从而通过前述方式,由于数据接收进程不需要提前向数据发送进程发起数据请求并等待回复,属于同步方案,因此可以改善异步方案面临的网络性能消耗大、开发效率低等问题,并且,数据接收进程可以在接收到数据发送进程发送的同步消息之后,从同步消息中获取与自身携带的目标数据类型标识对应的目标更新数据,即在数据接收进程可以实现根据目标数据类型标识按需获取对应的更新数据,如此,数据接收进程在对保存的数据进行同步时不会获取本进程用不到的更新数据,相较于相关技术中的同步方案,可以减少数据接收进程在基于数据发送进程维护的源数据进行相应的数据同步处理时的内存占用。
在对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及一种应用环境进行介绍。
如图1所示,图1为本申请实施例所涉及的应用环境的示意图。其中,包括有客户端110以及服务器120。其中,服务器120内可以部署有数据接收进程121以及数据发送进程122。数据接收进程121可以理解为使用源数据的进程,且数据接收进程121可以有多个。数据发送进程122,可以理解为数据源进程。数据发送进程122和多个数据接收进程121之间可以进行进程间通信,数据发送进程122中维护有数据接收进程121需要的源数据,数据发送进程122可以接收客户端110发送的数据更新请求,对源数据进行修改或者维护,并将修改或者维护后的更新数据发送给数据接收进程121,数据接收进程121用于接收数据发送进程122发送的修改或者维护后的更新数据,并基于更新数据进行相应的数据同步处理,并使用同步处理后的数据。上述应用环境可以用于但不限于前面提到的数据使用场景。
图1所示的应用环境仅对服务器120内部的数据发送进程122以及数据接收进程121之间的通信过程进行详述,可以理解的是,客户端110内部也可以包括数据接收进程以及数据发送进程,进而通过客户端110内部的数据发送进程以及数据接收进程,实现客户端110内部的进程间通信。
需要说明的是,图1是一种示例性的应用环境,本申请实施例所提供的方法还可以运行于其他的应用环境中。
如图2所示,图2为本申请实施例所涉及的另一种应用环境的示意图。该应用环境可以包括有客户端130以及服务器140。其中,客户端130可以有多个,每个客户端130内可以部署有数据接收进程131,可以理解为使用源数据的进程,服务器140内可以部署有数据发送进程141,可以理解为数据源进程,数据发送进程141和数据接收进程131之间可以进行进程间通信,数据发送进程141中维护有数据接收进程131需要的源数据,服务器140的数据发送进程141可以接收运维或者策划等在服务器140操作界面发送的数据更新请求,对数据源进行修改或者维护,并将修改或者维护后的更新数据发送给客户端130的数据接收进程131,数据接收进程131用于接收数据发送进程141发送的修改或者维护后的更新数据,并基于更新数据进行相应的数据同步处理,并使用同步处理后的数据。上述应用环境可以用于但不限于前面提到的数据推送场景。
图2所示的应用环境仅对服务器140内部的数据发送进程141以及客户端130内部的数据接收进程131之间的通信过程进行详述,可以理解的是,服务器140内部也可以包括数据接收进程,进而通过服务器内部的数据发送进程141以及数据接收进程,实现服务器140内部的进程间通信,客户端130内部也可以包括数据发送进程,进而通过客户端内部的数据发送进程以及数据接收进程131,实现客户端130内部的进程间交互。
需要说明的是,数据发送进程与数据接收进程是相对的,对于某个源数据而言,维护该源数据,并向其他进程发送该源数据的进程为数据发送进程,接收该源数据的进程为数据接收进程。
需要说明的是,其中,服务器120或者服务器140可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(ContentDelivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。客户端110、客户端130或者客户端150所在的电子设备可以为智能手机外、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。
下面再对本申请实施例的数据发送进程以及数据接收进程的结构进行介绍。
本申请实施例中,开发者可以在数据发送进程内部写入相关代码,由写入的相关代码实现本申请实施例的数据发送进程所提供的功能,同样地,开发者也可以在数据接收进程内部写入相关代码,由写入的相关代码实现本申请实施例的数据接收进程所提供的功能。
为了提高代码重复使用的效率,简化代码编写,减少各个开发者的工作量,减少漏洞产生的概率,在一些方式中,可以将数据发送进程内部写入的相关代码封装为数据维护模块,同样地,可以将数据接收进程内部写入的相关代码封装为数据同步模块,如此,在再次需要实现本申请实施例的数据发送进程所提供的功能,或者实现本申请实施例的数据接收进程所提供的功能时,可以直接通过在数据发送进程内部注册数据维护模块,使得数据发送进程在启动时能够通过调用数据维护模块的代码实现,或者直接在数据接收进程内部注册数据同步模块,使得数据接收进程在启动时能够通过调用数据同步模块的代码实现。
请参阅图3,图3为本申请实施例所涉及的数据发送进程的结构示意图。其中,数据发送进程内部可以注册有数据维护模块(_SVR_MODULE),从而通过数据维护模块实现本申请实施例中的数据发送进程所提供的功能。
请参阅图4,图4为本申请实施例所涉及的数据接收进程的结构示意图。其中,数据接收进程内部可以注册有数据同步模块(_CLI_MODULE),从而通过数据同步模块实现本申请实施例中的数据接收进程所提供的功能。
需要说明的是,本申请实施例中的数据维护模块以及数据同步模块是能够提供具体功能的封装好的代码模块。
下面将结合附图具体描述本申请的各实施例。
请参阅图5,图5所示为本申请一实施例提出的一种数据同步方法的流程图,该方法应用于数据接收进程,该数据接收进程注册有数据同步模块,该数据同步模块注册有目标数据类型标识,该方法包括:
S110:接收来自数据发送进程的同步消息,同步消息包括至少一个数据类型的源数据对应的更新数据,同步消息是数据发送进程内保存的至少一个数据类型的源数据发生更新后生成的。
其中,本申请实施例中的源数据可以理解为由数据发送进程维护的,供其他数据接收进程使用的数据,每个数据发送进程内的源数据可以有多种数据类型。例如,社交进程中的源数据可以包括帮派基础数据、帮派成员数据、帮派科技数据以及帮派建筑数据等数据类型,又例如,活动进程中的源数据可以包括万圣节活动数据以及春节活动数据等。
由前述内容可知,数据发送进程内保存的源数据是可以更新的,在至少一个数据类型的源数据更新之后,数据发送进程均可以生成同步消息,例如,社交进程中的帮派基础数据发生更新,社交进程可以生成同步消息,又例如,社交进程中的帮派成员数据发生更新,社交进程可以生成同步消息。
可以理解的是,本申请实施例中是为了保证数据接收进程与数据发送进程内的源数据保持一致,正常情况下,若某个数据类型的源数据未发生数据更新,那么数据发送进程内的源数据与数据接收进程内的源数据应该是一致的,因此,作为一种方式,数据发送进程生成的同步消息中可以只包括发生数据更新的源数据对应的更新数据。例如,假设社交进程中只有帮派基础数据以及帮派成员数据发生了数据更新,那么数据发送进程可以生成同步消息,此时的同步消息中可以仅包括帮派基础数据对应的更新数据以及帮派成员数据对应的更新数据,而不包括未发生数据更新的帮派科技数据以及帮派建筑数据。
其中,更新数据可以理解为源数据发生更新后的数据,例如,对于帮派基础数据这个源数据,在更新之前包括“帮派名称:逍遥派”、“等级:1”、“公告:暂无”以及“成员数:49/50”,在更新之后增加了“帮派公告:娱乐帮派,大家玩的开心”,此时帮派基础数据对应的更新数据为“帮派名称:逍遥派”、“等级:2”、“公告:娱乐帮派,大家玩的开心”以及“成员数:49/50”。
在数据发送进程生成同步消息之后,可以向数据接收进程发送该同步消息,以通知数据接收进程源数据发生了更新,需要进行数据同步。如此,数据接收进程便可以接收来自数据发送进程的同步消息。
采用这种同步消息生成方法,由于生成的同步消息中只包括发生数据更新的源数据对应的更新数据,从而可以减少数据发送进程的数据发送量,节约网络性能消耗。
此外,考虑到进程间进行通信时可能存在丢包的情况,从而导致数据接收进程前面获取的源数据不完整,因此,即使某个数据类型的源数据未发生数据更新,数据接收进程中的源数据也可能与数据发送进程内的源数据不一致,因此,作为另一种方式,数据发送进程生成的同步消息除了可以包括发生数据更新的源数据对应的更新数据,还可以包括未发生数据更新的源数据对应的数据。例如,假设社交进程中只有帮派基础数据以及帮派成员数据发生了数据更新,那么数据发送进程可以生成同步消息,此时的同步消息中不仅可以包括帮派基础数据对应的更新数据以及帮派成员数据对应的更新数据,还包括未发生数据更新的帮派科技数据以及帮派建筑数据。
采用这种同步消息生成方法,可以使得数据接收进程同时接收未发生数据更新的源数据对应的数据,从而利用未发生数据更新的源数据对应的数据,对数据接收进程内缓存的所有源数据进行校准,提高了数据接收进程内源数据的准确性,提高数据接收进程中的源数据与数据发送进程内的源数据的一致性。
S120,调用数据同步模块,获取同步消息中与目标数据类型标识对应的目标更新数据。
其中,目标数据类型标识可以理解为数据接收进程内部预先存储的自身所需源数据对应的类型标识。
可以理解的是,每个目标数据类型标识对应一个数据类型的源数据,目标更新数据可以理解为同步消息包括的更新数据中,与目标数据类型标识对应的数据。进而,数据接收进程便可以根据目标数据类型标识,仅获取同步消息中与自身携带的目标数据类型标识对应的目标更新数据。例如,拍卖进程仅需要用到帮派基础数据,则可以在拍卖进程内预先存储帮派基础数据标识,如此,拍卖进程在接收到同步消息时,只从同步消息中获取与帮派基础数据标识对应的帮派基础数据,而舍弃掉其他消息,相较于相关技术中拍卖进程获取所有的更新数据,可以减少拍卖进程的内存占用。
作为一种方式,可以在数据接收进程内注册数据同步模块,数据同步模块内提供多种数据类型注册接口,供数据同步模块根据需要对各个数据类型标识对应的源数据进行注册,即通过数据类型注册接口,使得数据同步模块可以注册有目标数据类型标识,例如,数据同步模块内提供有帮派基础数据注册接口、帮派成员数据注册接口、帮派科技数据注册接口以及帮派建筑数据注册接口等,若通过数据类型注册接口注册有帮派基础数据以及帮派成员数据,可以得到目标数据类型标识包括帮派基础数据标识以及帮派成员数据标识,同时,数据同步模块可以自动接收来自数据发送进程的同步消息。
由于数据接收进程注册有数据同步模块,因此,数据接收进程在启动的时候可以调用数据同步模块执行初始化操作,使得数据接收进程拥有数据同步模块的功能。进而,在数据同步模块中注册有目标数据类型标识的情况下,数据接收进程可以调用数据同步模块,根据注册的目标数据类型标识,自动获取同步消息中与自身携带的目标数据类型标识对应的目标更新数据。
由于数据同步模块是封装好的代码模块,在使用时各个数据接收进程可以通过注册这个模块,而不用关心底层数据是怎么获取的,通过灵活的插装,减少了各个开发者的工作量,减少了漏洞产生的概率。
作为另外一种方式,目标数据类型标识可以根据数据接收进程的需要进行预先配置。
S130,基于数据同步模块提供的数据同步接口以及目标更新数据,对目标更新数据对应的数据进行同步。
数据接收进程内注册的数据同步模块可以提供数据同步接口,其中,接口是应用程序接口(API,Application Programming Interface)的简称,可以理解为是一些预先定义的功能函数。为了提高数据接收进程中的源数据与数据发送进程内的源数据的一致性,数据接收进程在获取到目标更新数据之后,便可以基于数据同步模块提供的数据同步接口以及目标更新数据,对自身保存的与目标更新数据对应的数据进行同步。例如,若获取到的目标更新数据为帮派基础数据,则可以调用数据同步模块提供的数据同步接口,对数据接收进程内保存的帮派基础数据进行同步。
作为一种方式,在获得目标更新数据之后,数据接收进程可以将目标更新数据与自身保存的相同数据类型的源数据进行比对,根据比对结果,确定需要调用的接口,然后再基于对应的接口以及目标更新数据进行同步。
可选地,比对结果有三种可能的情况,一种情况是,目标更新数据存在某个数据,而数据接收进程内不存在,例如,目标更新数据中存在“帮派繁荣度2490/2500”和“成员数:49/50”,而数据接收进程内仅存在“成员数:49/50”,此时,数据接收进程确定需要调用数据创建接口,创建“帮派繁荣度2490/2500”这个数据。
另一种情况是,目标更新数据存在某个数据,数据接收进程内也存在某个数据,但是两者的具体内容不同,例如,目标更新数据中存在“逍遥派”,数据接收进程内也存在“逍遥派”,但是目标更新数据中的“逍遥派”等级为2,而数据接收进程内的“逍遥派”等级为1,此时,数据接收进程确定需要调用数据修改接口,利用数据修改接口将“逍遥派”的等级从等级1修改为等级2。
再一种情况是,目标更新数据不存在某个数据,而数据接收进程内存在,例如,目标更新数据中仅存在“成员数:49/50”,而数据接收进程内存在“成员数:49/50”和“帮派繁荣度2490/2500”,此时,数据接收进程确定需要调用数据删除接口,删除“帮派繁荣度2490/2500”这个数据。
作为另一种方式,同步消息还包括数据操作类型。其中,数据操作类型可以理解为数据发送进程在接收到数据更新请求,对自身保存源数据进行修改或者维护时,对数据进行操作的方式,例如,对于数据接收进程中不存在的数据,可以采用对目标更新数据进行创建的方式,对于数据接收进程中已经存在,且不需要删除的数据,可以采用对目标更新数据进行修改的方式,对于数据接收进程中已经存在,且需要删除的数据,可以采用对目标更新数据进行删除的方式。
在同步消息包括数据操作类型的情况下,对同步消息进行解析,可以得到同步消息的数据操作类型字段,例如可以得到Create消息、Update消息或者Destory消息,其中Create消息即创建操作,Update消息即修改操作,Destory消息即删除操作。由于能够直接得到数据操作类型,因此,在得到同步消息中包括的数据操作类型之后,可以直接基于数据操作类型对应的接口以及目标更新数据,对目标更新数据对应的数据进行同步。这种情况下,则不必再将目标更新数据与自身保存的相同数据类型的源数据进行比对,从而根据比对结果,调用对应接口进行同步。
可选地,数据操作类型可以包括创建操作、修改操作或者删除操作。在这种情况下,基于数据同步模块提供的数据同步接口以及目标更新数据,对目标更新数据对应的数据进行同步,包括:在数据操作类型为创建操作时,基于数据创建接口以及目标更新数据,对目标更新数据对应的数据进行同步;在数据操作类型为修改操作时,基于数据修改接口以及目标更新数据,对目标更新数据对应的数据进行同步;在数据操作类型为删除操作时,基于数据删除接口以及目标更新数据,对目标更新数据对应的数据进行同步。
可以理解的是,数据接收进程可以提供数据创建接口、数据修改接口以及数据删除接口,数据创建接口用于在数据接收进程内创建数据,数据修改接口用于在数据接收进程内修改数据,数据删除接口用于在数据接收进程内删除数据。因此,数据接收进程在从同步消息中解析得到数据操作类型之后,能够调用与数据操作类型对应的接口,对目标更新数据进行操作,从而实现对数据接收进程中保存的数据进行同步。
如果从同步消息中解析得到数据操作类型为创建操作,则调用数据创建接口对目标更新数据进行操作,即在数据接收进程内创建一个目标更新数据。
如果从同步消息中解析得到数据操作类型为修改操作,则调用数据修改接口对目标更新数据进行操作,即将数据接收进程内已有的数据修改为目标更新数据。
如果从同步消息中解析得到数据操作类型为删除操作,则调用数据删除接口对目标更新数据进行操作,即从数据接收进程内删除与目标更新数据对应的数据。
作为另外一种方式,数据创建接口、数据修改接口以及数据删除接口,可以是通过在数据接收进程内写入相关接口代码得到的。
本申请实施例提供的一种数据同步方法,数据接收进程可以先接收来自数据发送进程的同步消息,然后调用数据同步模块,获取同步消息中与目标数据类型标识对应的目标更新数据,再基于数据同步模块提供的数据同步接口以及目标更新数据,对目标更新数据对应的数据进行同步。由于数据接收进程不需要提前向数据发送进程发起数据请求并等待回复,属于同步方案,因此可以改善异步方案面临的网络性能消耗大、开发效率低等问题,并且,数据接收进程可以在接收到数据发送进程发送的同步消息之后,调用数据同步模块从同步消息中获取与数据同步模块注册的目标数据类型标识对应的目标更新数据,即在数据接收进程可以实现根据目标数据类型标识按需获取对应的更新数据,如此,数据接收进程在对保存的数据进行同步时不会获取本进程用不到的更新数据,相较于相关技术中的同步方案,内存占用更小。此外,采用在数据接收模块内部注册数据同步模块,以及在数据同步模块内注册目标数据类型标识的方式,使得数据接收进程能够根据需要注册目标数据类型,实现灵活插装,能够简化代码编写,减少各个开发者的工作量,减少了漏洞产生的概率。
请参阅图6,图6所示为本申请另一实施例提出的一种数据同步方法的流程图,该方法应用于数据接收进程,数据接收进程携带目标数据类型标识,该方法包括:
S210,在数据接收进程启动时,向数据发送进程发送第一数据获取请求。
其中,第一数据获取请求可以理解为数据接收进程在启动时自动生成的、用于向数据发送进程获取源数据的请求。
需要说明的是,数据接收进程启动可以有两种情况,一种是数据接收进程在工作开始时的正常启动,另一种是数据接收进程在工作过程中故障之后的重启。但是不管哪种启动类型,在启动后,数据接收进程内的数据均已经被释放掉,即数据接收进程在启动的时,内部是不存在所需的源数据的,因此,不管数据发送进程内保存的源数据是否发生更新,数据接收进程在启动时均会生成第一数据获取请求。在生成第一数据获取请求之后,数据接收进程便可以向数据发送进程发送第一数据获取请求。
S220,接收数据发送进程基于第一数据获取请求返回的第一数据,第一数据包括M个数据类型的源数据,第一数据是数据发送进程接收到第一数据获取请求时已保存的数据,其中M为大于或等于1的自然数。
其中,第一数据可以理解为数据发送进程在接收到第一数据获取请求这个时刻下,数据发送进程自身保存的源数据。也就是说,数据发送进程在接收到数据接收进程发送的第一数据获取请求之后,可以响应第一数据获取请求,并从当前已保存的数据中获取源数据,即获取第一数据。
作为一种方式,数据接收进程发送的第一数据获取请求用于获取数据发送进程当前已保存的全部源数据,这种情况下,第一数据获取请求可以不包括数据接收进程自身携带的目标数据类型标识,进而,当数据发送进程在响应第一数据获取请求时,获取的第一数据可以是数据发送进程内保存的所有源数据,例如,社交进程中保存的帮派基础数据、帮派成员数据、帮派科技数据以及帮派建筑数据等,数据发送进程向数据接收进程返回的第一数据包括帮派基础数据、帮派成员数据、帮派科技数据以及帮派建筑数据等所有源数据。需要说明的是,若数据发送进程内仅维护有一个数据类型的源数据,此时,第一数据可以只有一个数据类型的源数据。
作为另一种方式,数据接收进程发送的第一数据获取请求用于获取数据发送进程当前已保存的全部源数据中的部分源数据,这种情况下,第一数据接收进程发送的第一数据获取请求可以包括数据接收进程自身携带的目标数据类型标识,这种情况下,当数据发送进程在响应第一数据获取请求时,获取的第一数据可以是数据发送进程内保存的与目标数据类型标识对应的源数据,例如,场景进程携带的目标数据类型标识包括帮派基础数据标识以及帮派成员数据标识,则数据发送进程向数据接收进程返回的第一数据仅包括帮派基础数据以及帮派成员数据。需要说明的是,若数据接收进程携带的目标数据类型标识只有一个,此时,第一数据可以只有一个数据类型的源数据。
S230,调用数据同步模块,获取第一数据中与目标数据类型标识对应的第一目标源数据。
其中,第一目标源数据可以理解为第一数据中的与目标数据类型标识对应的数据。可以理解的是,数据接收进程在接收来自数据发送进程基于第一数据获取请求返回的第一数据时,可以调用数据同步模块,仅获取第一数据中与自身携带的目标数据类型标识对应的第一目标源数据。
由前述内容可知,第一数据可以有两种情况,一种情况下,第一数据可以是数据发送进程内保存的所有源数据,此时,数据接收进程还需要根据目标数据类型标识从所有源数据中选择自身需要的源数据,作为第一目标源数据获取;另一种情况下,第一数据已经是在数据发送进程获取时经过经过筛选的与目标数据类型标识对应的源数据,这种情况下,数据接收进程可以直接将所有的第一数据作为第一目标源数据获取。
S240,保存第一目标源数据。
数据接收进程在获取到第一目标源数据之后,便可以将第一目标源数据保存在进程中。
作为一种方式,数据接收进程可以调用数据创建接口保存第一目标源数据。
作为一种方式,可以通过在数据接收进程内写入生成并发送第一数据获取请求,接收第一数据,获取第一数据中的第一目标源数据以及保存第一目标源数据的相关代码,使得数据接收进程在启动时,实现上述S210到S240的功能。
作为另外一种方式,除了提供调用数据同步模块获取第一数据中的第一目标源数据以外,数据同步模块可以提供生成并发送第一数据获取请求,接收第一数据,以及保存第一目标源数据的功能,如此,可以通过在数据接收进程内注册数据同步模块,使得数据接收进程在启动时,实现上述S210到S240的功能。
S250,接收来自数据发送进程的同步消息,同步消息包括至少一个数据类型的源数据对应的更新数据,同步消息是数据发送进程内保存的至少一个数据类型的源数据发生更新后生成的。
S260,调用数据同步模块,获取同步消息中与目标数据类型标识对应的目标更新数据。
S270,基于数据同步模块提供的数据同步接口以及目标更新数据,对目标更新数据对应的数据进行同步。
本申请实施例提供的一种数据同步方法,数据接收进程在启动时可以自动生成第一数据获取请求,并向数据发送进程发送第一数据获取请求,然后再接收数据发送进程返回的第一数据,并从第一数据中获取与目标数据类型标识对应的第一目标源数据进行保存,从而通过该过程,使得数据接收进程在每次启动时均能够迅速获取到第一目标源数据,保证自身的正常运行的同时,也减少了自身内存占用。
此外,为了进一步减少数据接收进程在基于数据发送进程维护的源数据进行相应的数据同步处理时的内存占用,作为一种方式,数据接收进程还可以在启动时,配置与目标数据类型标识对应的有效内存地址,有效内存地址为分配有对应的内存空间的内存地址。在这种情况下,基于目标更新数据,对目标更新数据对应的数据进行同步,包括:基于数据同步模块提供的数据同步接口以及目标更新数据,对内存空间中保存的与目标更新数据对应的数据进行同步。
可以理解的是,各个源数据的数据类型标识可以分别看做是一个内存地址,各个源数据的数据实体可以看做是内存空间中保存的内容。相关技术中,为了简化代码编写过程,通常为各个数据接收进程分配一块相同大小的内存空间来存储源数据,然而有的数据接收进程存储的源数据类型较多,需要的内存空间较大,因此,为了满足所有的数据接收进程都能够完全存储源数据,分配的这一块内存空间内存占用量较大,这样就带来了内存浪费。因此,本申请实施例中,数据接收进程在启动时,仅配置与目标数据类型标识对应的有效内存地址,也就是说,数据接收进程可以根据自身携带的目标数据类型标识,仅为自身需要的源数据分配对应的内存空间,并用于存储对应的源数据,而不是为数据发送进程中的所有源数据分配内存空间,因此,可以大大优化内存使用。这种情况下,在基于目标更新数据对目标更新数据对应的数据进行同步时,便可以对内存空间中保存的目标更新数据对应的数据进行同步。
示例性地,请参阅图7,图7所示为本申请一实施例提出的一种内存空间分配示意图,在图7中,场景进程携带的目标数据类型标识包括帮派基础数据a以及帮派成员数据b,因此,场景进程内仅为帮派基础数据对应的内存地址分配了内存空间1,以及为帮派成员数据对应的内存地址分配了内存空间2。
此外,考虑到相关技术中,为了将同步消息发送到指定的数据接收进程,是在数据发送进程统一添加相关数据接收进程的地址信息,然而,通常情况下,数据接收进程数量较大,在数据发送进程统一添加相关数据接收进程的地址信息,造成数据发送进程代码冗余、混杂,增加了编码难度,且易于出现漏洞。
为了解决上述问题,本申请实施例中可以利用路由进程接收数据发送进程发送的同步消息,并由路由进程将同步消息转发到各个数据接收进程,如此可以降低数据发送进程代码冗余、混杂的程度,降低编码难度,降低出现漏洞的风险。
作为一种方式,数据接收进程还可以在启动时,将数据同步凭证发送到路由进程,以使路由进程根据数据同步凭证生成第一路由信息。在这种情况下,接收来自数据发送进程的同步消息,包括:接收路由进程根据第一路由信息转发的同步消息,同步消息是数据发送进程发送到路由进程的。
其中,数据同步凭证可以理解为数据接收进程可以进行同步的凭证,路由进程能够根据数据同步凭证确定数据接收进程是否需要接收同步消息。
因此,为了使得路由进程能够将同步消息准确转发到需要同步消息的数据接收进程,数据接收进程在启动时,可以向路由进程发送数据同步凭证,路由进程在接收到数据同步凭证之后,可以确定数据同步凭证对应的数据接收进程需要接收同步消息,因此,可以主动记录该数据接收进程的地址信息作为第一路由信息。路由进程在得到第一路由信息之后,便可以依据第一路由信息指示的地址,将数据发送进程发送的同步消息转发到对应的数据接收进程,若某个数据接收进程内不存在数据同步凭证,则不会接收到同步消息。如此,数据接收进程便能够接收路由进程根据第一路由信息转发的同步消息。采用该种方式,由于路由进程仅将同步消息转发到存在数据同步凭证的数据接收进程,可以进一步减少网络性能消耗。
作为一种方式,可以在数据接收进程内写入配置数据同步凭证的相关代码,对数据同步凭证进行预先配置。
作为另外一种方式,数据同步模块内可以携带数据同步凭证,从而通过在数据接收进程内注册数据同步模块,使得数据接收进程可以调用数据同步模块,自动向路由进程发送数据同步凭证,并接收路由进程根据第一路由信息转发的同步消息。
示例性地,请参阅图8,图8示出了本申请实施例提出的一种数据同步方法的场景架构示意图,如图8所示,该场景架构包括数据发送进程210、数据接收进程220、数据接收进程230以及路由进程240。
数据发送进程210内注册有数据维护模块211,且数据发送进程210在数据维护模块211内调用数据类型注册接口注册有帮派基础数据、帮派成员数据、帮派科技数据以及帮派建筑数据;数据接收进程220内注册有数据同步模块221,且数据接收进程220在数据同步模块221内调用数据类型注册接口注册有帮派基础数据以及帮派成员数据;数据接收进程230内未注册有数据同步模块,不存在数据同步凭证;路由进程240分别与数据发送模块210、数据接收模块220以及数据接收模块230通信连接。
由于数据接收模块220内注册了数据同步模块,因此,数据接收模块内存在数据同步凭证,而数据接收模块230内未注册数据同步模块,因此,数据接收模块230内不存在数据同步凭证,在该场景架构下,数据发送模块将同步消息先发送到路由进程240,路由进程240只会将同步消息转发到数据接收模块220,而不会将同步消息转发到数据接收模块230(图8中X表示同步消息不会转发到数据接收进程230)。
并且,由于数据发送模块210调用数据类型注册接口注册有帮派基础数据、帮派成员数据、帮派科技数据以及帮派建筑数据,因此,同步消息中可以包括帮派基础数据、帮派成员数据、帮派科技数据以及帮派建筑数据,数据接收模块220在接收到同步消息之后,由于自身调用数据类型注册接口注册有帮派基础数据以及帮派成员数据,因此,可以从同步消息中获取对应的帮派基础数据以及帮派成员数据,并基于数据同步模块提供的数据同步接口、帮派基础数据以及帮派成员数据对自身保存的帮派基础数据以及帮派成员数据进行同步。
请参阅图9,图9所示为本申请另一实施例提出的一种数据同步方法的流程图,该方法应用于数据接收进程,数据接收进程携带目标数据类型标识,该方法包括:
S310,接收来自数据发送进程的同步消息,同步消息包括至少一个数据类型的源数据对应的更新数据,同步消息是数据发送进程内保存的至少一个数据类型的源数据发生更新后生成的。
S320,调用数据同步模块,获取同步消息中与目标数据类型标识对应的目标更新数据。
S330,基于数据同步模块提供的数据同步接口以及目标更新数据,对目标更新数据对应的数据进行同步。
S340,接收来自数据发送进程的检测数据,检测数据是数据发送进程在满足预设条件的情况下获取的。
考虑到数据发送进程与数据接收进程进行通信时可能存在丢包的情况,这样会导致数据接收进程获取的数据与数据发送进程发送的数据不一致,从而导致即使数据发送进程向数据接收进程发送了同步消息,最终数据接收进程内保存的源数据与数据发送进程内保存的源数据也不一致,因此,为了保证数据接收进程内的源数据与数据发送进程内的源数据的一致性,数据发送进程可以在满足预设条件的情况下自动获取检测数据,在数据发送进程获取检测数据之后,可以将检测数据发送到数据接收进程,如此,数据接收进程可以接收来自数据发送进程的检测数据。
其中,检测数据可以理解为用于检测数据发送进程内的源数据与数据接收进程内的源数据是否一致的数据。作为一种方式,检测数据可以包括实际源数据,例如源数据的数据类型标识、源数据中数据对象的标识或者源数据对应的当前版本号等。可以理解的是,源数据中每个数据对象均存在标识,例如,对于帮派基础数据,其中的数据对象的标识可以是“逍遥派”或者“华山派”等,也可以是“成员数”、“帮派公告”等。
示例性地,检测数据可以包括帮派基础数据、华山派、1.02版本数据。该检测数据表明在帮派基础数据下,华山派当前对应的数据版本为1.02版本。
作为另外一种方式,检测数据还可以是数据发送进程内的根据源数据对应转换数据,例如源数据对应的哈希值。
另外,数据发送进程内还预先设置有触发数据发送进程获取检测数据的条件,在达到预先设置的触发条件时,数据发送进程即可自动获取检测数据。
作为一种方式,预先设置的触发数据发送进程获取检测数据的条件,即预设条件可以是时间周期,例如,可以设置获取检测数据的时间周期,如此,数据发送进程每隔一定的时间周期,便自动获取检测数据,可选地,时间周期可以是5秒、10秒或者15秒等,本申请实施例不对时间周期作具体限定,但是需要说明的是,对于数据实时性要求相对较高的数据接收进程,可以选择设置较小的时间周期,如此可以满足数据接收进程对于数据实时性的要求,而对于数据实时性要求相对较低的数据接收进程,可以选择设置较小的时间周期,如此可以节约数据发送进程以及数据接收进程的网络性能。
作为一种方式,预设条件还可以是在超过时间间隔阈值之后重新接收到数据接收进程发送的心跳包。在数据发送进程中可以设置接收同一个数据接收进程的相邻两次心跳包的时间间隔阈值,若接收两次心跳包的时间间隔大于时间间隔阈值,则可以认为传输出现了故障,可能会导致数据丢包,因此,在重新接收到数据接收进程发送的心跳包之后,可以认为传输故障修复,此时数据发送进程可以获取检测数据。
示例地,假设数据发送进程为社交进程,数据接收进程为拍卖进程,若拍卖进程的心跳包间隔为3秒,此时可以在社交进程中设置接收拍卖进程发送的相邻两次心跳包的时间间隔为3秒,若社交进程在距离上一次接收拍卖进程的心跳包30秒之后才再次接收到拍卖进程的心跳包,由于30秒超过3秒,此时,社交进程可以获取检测数据。
需要说明的是,上述数据接收进程内保存的源数据与数据发送进程内保存的源数据不一致是指同一个数据类型的源数据不一致,例如,社交进程中的帮派基础数据与拍卖进程中的帮派基础数据不一致。
S350,在检测数据与校验数据不一致的情况下,向数据发送进程发送第二数据获取请求。
其中,校验数据可以理解为数据接收进程内存储的与检测数据的内容相对应的数据,例如,检测数据包括源数据的数据类型标识、源数据中数据对象的标识以及源数据对应的当前版本号三个内容,对应地,校验数据也包括源数据的数据类型标识、源数据中数据对象的标识以及源数据对应的当前版本号三个内容。检测数据与校验数据不同之处在于,检测数据是数据发送进程中的数据,校验数据是数据接收进程中的数据。
第二数据获取请求可以理解为数据接收进程在比对检测数据与校验数据不一致的情况下,自动生成的、用于向数据发送进程获取源数据的请求。
作为一种方式,数据接收进程在接收数据发送进程发送的检测数据之后,可以获取校验数据,从而将检测数据与校验数据进行比对,如果比对不一致,则表明数据发送进程与数据接收进程内的保存的源数据不一致,此时,数据接收进程可以生成第二数据获取请求,并向数据发送进程发送生成的第二数据获取请求。如果比对一致,则表明数据发送进程与数据接收进程内的保存的源数据一致,未出现丢包,此时数据接收进程可以不用作出任何操作。
示例性地,假设检测数据可以包括帮派基础数据、华山派、1.02版本数据,而数据接收进程内存储的校验数据包括帮派基础数据、华山派、1.01版本数据,则检测数据与校验数据不一致。
S360,接收数据发送进程基于第二数据获取请求返回的第二数据,第二数据包括N个数据类型的源数据,第二数据是数据发送进程接收到第二数据获取请求时已保存的数据,其中N为大于或等于1的自然数。
其中,第二数据可以理解为数据发送进程在接收到第二数据获取请求这个时刻下,数据发送进程自身保存的源数据。也就是说,数据发送进程在接收到数据接收进程发送的第二数据获取请求之后,可以响应第二数据获取请求,并从当前已保存的数据中获取源数据,即获取第二数据。
作为一种方式,数据接收进程发送的第二数据获取请求用于获取数据发送进程当前已保存的全部源数据,这种情况下,第二数据获取请求可以不包括数据接收进程自身携带的目标数据类型标识,进而,当数据发送进程在响应第二数据获取请求时,获取的第二数据可以是数据发送进程内保存的所有源数据,例如,社交进程中保存的帮派基础数据、帮派成员数据、帮派科技数据以及帮派建筑数据等,数据发送进程向数据接收进程返回的第二数据包括帮派基础数据、帮派成员数据、帮派科技数据以及帮派建筑数据等所有源数据。需要说明的是,若数据发送进程内仅维护有一个数据类型的源数据,此时,第二数据可以只有一个数据类型的源数据。
作为另一种方式,数据接收进程发送的第二数据获取请求用于获取数据发送进程当前已保存的全部源数据中的部分源数据,这种情况下,第二数据接收进程发送的第二数据获取请求可以包括数据接收进程自身携带的目标数据类型标识,这种情况下,当数据发送进程在响应第二数据获取请求时,获取的第二数据可以是数据发送进程内保存的与目标数据类型标识对应的源数据,例如,场景进程携带的目标数据类型标识包括帮派基础数据标识以及帮派成员数据标识,则数据发送进程向数据接收进程返回的第二数据仅包括帮派基础数据以及帮派成员数据。需要说明的是,若数据接收进程携带的目标数据类型标识只有一个,此时,第二数据可以只有一个数据类型的源数据。
S370,调用数据同步模块,获取第二数据中与目标数据类型标识对应的第二目标源数据。
其中,第二目标源数据可以理解为第二数据中的与目标数据类型标识对应的数据。可以理解的是,数据接收进程在接收来自数据发送进程基于第二数据获取请求返回的第二数据时,可以调用数据同步模块,获取第二数据中与自身携带的目标数据类型标识对应的第二目标源数据。
需要说明的是,第二数据也可以有两种情况。
S380,基于数据同步模块提供的数据同步接口以及第二目标源数据,对第二目标源数据对应的数据进行同步。
同样地,数据接收进程在基于第二目标源数据对第二目标源数据对应的数据进行同步时,可以将第二目标源数据与自身保存的相同数据类型的源数据进行比对,根据比对结果,确定需要调用的接口,然后再基于对应的接口以及目标更新数据进行同步。
需要说明的是,本实施例中是以数据接收进程在保存第一目标源数据以后,数据发送进程中的源数据发生了更新,数据接收进程接收到来自数据发送进程的同步消息,并获取目标更新数据的情况进行示例,这种情况下,第二目标源数据对应的数据可以是数据接收进程基于目标更新数据,对自身保存的目标更新数据对应的数据进行同步后的数据。可选地,也存在数据接收进程在保存第一目标源数据以后,数据发送进程内的源数据未发生更新的情况,这种情况下,第二目标源数据对应的数据还可以是数据接收进程保存的第一目标源数据。
作为一种方式,可以通过在数据接收进程内写入接收检测数据,比对检测数据与检验数据是否一致,向数据发送进程发送第二数据获取请求,接收第二数据,获取第二数据中的第二目标源数据以及保存第一目标源数据,以及基于第二目标源数据,对第二目标数据对应的数据进行同步的相关代码,使得数据接收进程实现上述S340到S380的功能。
作为另外一种方式,数据同步模块除了提供调用数据同步模块,获取第二数据中与目标数据类型标识对应的第二目标源数据以外,还可以提供接收检测数据,比对检测数据与检验数据是否一致,向数据发送进程发送第二数据获取请求,接收第二数据以及保存第一目标源数据,以及基于第二目标源数据,对第二目标数据对应的数据进行同步的功能,如此,可以通过在数据接收进程内注册数据同步模块,使得数据接收进程实现上述S340到S380的功能。
本申请实施例提供的一种数据同步方法,由于数据接收进程不需要提前向数据发送进程发起数据请求并等待回复,属于同步方案,因此可以改善异步方案面临的网络性能消耗大、开发效率低等问题,并且,数据接收进程可以在接收到数据发送进程发送的同步消息之后,从同步消息中获取与自身携带的目标数据类型标识对应的目标更新数据,即在数据接收进程可以实现根据目标数据类型标识按需获取对应的更新数据,如此,数据接收进程在对保存的数据进行同步时不会获取本进程用不到的更新数据,相较于相关技术中的同步方案,内存占用更小。
请参阅图10,图10所示为本申请另一实施例提出的一种数据同步方法的流程图,该方法应用于数据发送进程,该方法包括:
S410,在数据发送进程内保存的至少一个数据类型的源数据发生更新后,生成同步消息,同步消息包括至少一个数据类型的源数据对应的更新数据。
其中,可以理解的是,对于数据发送进程,内部存储有多种数据,例如,自身运行需要的各种配置数据、自身维护的供其他数据接收进程使用的数据,以及与其他进程进行通信的历史通信记录数据等。其中,本申请实施例中的源数据可以理解为由数据发送进程维护的,供其他数据接收进程使用的数据,每个数据发送进程内的源数据可以有多种数据类型,例如,社交进程中的源数据可以包括帮派基础数据、帮派成员数据、帮派科技数据以及帮派建筑数据等数据类型,又例如,活动进程中的源数据可以包括万圣节活动数据以及春节活动数据等。
由前述内容可知,数据发送进程在接收到数据更新请求之后,可以对数据源进行修改或者维护,从而导致数据发送进程内保存的源数据发生更新。在至少一个数据类型的源数据更新之后,数据发送进程可以生成同步消息,例如,社交进程中的帮派基础数据发生更新,社交进程可以生成同步消息,又例如,社交进程中的帮派成员数据发生更新,社交进程可以生成同步消息。
S420,向数据接收进程发送同步消息,以使数据接收进程在接收到同步消息时,基于注册的数据同步模块提供的数据同步接口以及目标更新数据,对目标更新数据对应的数据进行同步,目标更新数据为数据接收进程调用数据同步模块,获取的同步消息中与数据同步模块注册的目标数据类型标识对应的数据。
在数据发送进程生成同步消息之后,可以向数据接收进程发送该同步消息,以通知数据接收进程源数据发生了更新,需要进行数据同步。如此,数据接收进程便可以接收来自数据发送进程的同步消息,然后调用数据同步模块,获取同步消息中与数据同步模块注册的目标数据类型标识对应的目标更新数据,再基于目标更新数据,对自身保存的与目标更新数据对应的数据进行同步。
作为一种方式,可以通过在数据发送进程内写入配置源数据对应的类型标识,接收数据更新请求,并基于数据更新请求对源数据进行修改或者维护,生成同步消息,以及向数据接收进程发送同步消息的相关代码,使得数据发送进程可以实现上述S410到S420的功能。
作为另外一种方式,数据维护模块可以提供配置源数据对应的类型标识,接收数据更新请求,并基于数据更新请求对源数据进行修改或者维护,生成同步消息,以及向数据接收进程发送同步消息的功能,如此,可以通过在数据发送进程内注册数据维护模块,使得数据发送进程可以实现上述S410到S420的功能。采用在数据发送模块内部注册数据维护模块的方式,使得能够简化数据发送进程的代码编写,减少各个开发者的工作量,减少了漏洞产生的概率。
本申请实施例提供的一种数据同步方法,数据发送进程在自身保存的至少一个数据类型的源数据发生更新后,可以生成同步消息,然后将同步消息发送到数据接收进程,数据接收进程便可以接收来自数据发送进程的同步消息,然后调用数据同步模块,获取同步消息中与数据同步模块注册的目标数据类型标识对应的目标更新数据,再基于目标更新数据,对自身保存的与目标更新数据对应的数据进行同步。由于数据接收进程不需要提前向数据发送进程发起数据请求并等待回复,属于同步方案,因此可以改善异步方案面临的网络性能消耗大、开发效率低等问题,并且,数据接收进程可以在接收到数据发送进程发送的同步消息之后,调用数据同步模块从同步消息中获取与数据同步模块注册的目标数据类型标识对应的目标更新数据,即在数据接收进程可以实现根据目标数据类型标识按需获取对应的更新数据,如此,数据接收进程在对保存的数据进行同步时不会获取本进程用不到的更新数据,相较于相关技术中的同步方案,内存占用更小。此外,采用在数据接收模块内部注册数据同步模块,以及在数据同步模块内注册目标数据类型标识的方式,使得数据接收进程能够根据需要注册目标数据类型,实现灵活插装,能够简化代码编写,减少各个开发者的工作量,减少了漏洞产生的概率。
请参阅图11,图11所示为本申请另一实施例提出的一种数据同步方法的流程图,该方法应用于数据发送进程,该方法包括:
S510,接收来自数据接收进程的第一数据获取请求,第一数据获取请求是数据接收进程在启动时生成的。
其中,第一数据获取请求可以理解为数据接收进程在启动时自动生成的、用于向数据发送进程获取源数据的请求。
数据接收进程在生成第一数据获取请求之后,可以向数据发送进程发送第一数据获取请求,如此,数据发送进程可以接收来自数据接收进程的第一数据获取请求。
S520,响应于第一数据获取请求,获取第一数据,第一数据包括M个数据类型的源数据,第一数据是数据发送进程接收到第一数据获取请求时已保存的数据,其中M为大于或等于1的自然数。
其中,第一数据可以理解为数据发送进程在接收到第一数据获取请求这个时刻下,数据发送进程自身保存的源数据。也就是说,数据发送进程在接收到数据接收进程发送的第一数据获取请求之后,可以响应第一数据获取请求,并从当前已保存的数据中获取源数据,即获取第一数据。
S530,向数据接收进程发送第一数据,以使数据接收进程保存第一目标源数据,第一目标源数据为数据接收进程调用数据同步模块,获取的第一数据中与目标数据类型标识对应的数据。
数据发送进程在获取第一数据之后,可以向数据接收进程发送第一数据,如此,数据接收进程可以从第一数据中获取与目标数据类型标识对应的第一目标源数据,并保存第一目标源数据。
需要说明的是,数据接收进程发送的第一数据获取请求可以用于获取数据发送进程当前已保存的全部源数据,也可以用于获取数据发送进程当前已保存的全部源数据中的部分源数据。
作为一种方式,可以通过在数据发送进程内写入接收并响应第一数据获取请求,获取第一数据,以及向数据接收进程发送第一数据的相关代码,使得数据发送进程可以实现上述S510到S530的功能。
作为另外一种方式,数据维护模块可以提供接收并响应第一数据获取请求,获取第一数据,以及向数据接收进程发送第一数据的功能,如此,可以通过在数据发送进程内注册数据维护模块,使得数据发送进程可以实现上述S510到S530的功能。
S540,在数据发送进程内保存的至少一个数据类型的源数据发生更新后,生成同步消息,同步消息包括至少一个数据类型的源数据对应的更新数据。
S550,向数据接收进程发送同步消息,以使数据接收进程在接收到同步消息时,基于注册的数据同步模块提供的数据同步接口以及目标更新数据,对目标更新数据对应的数据进行同步,目标更新数据为数据接收进程调用数据同步模块,获取的同步消息中与数据同步模块注册的目标数据类型标识对应的数据。
本申请实施例提供的一种数据同步方法,使得数据接收进程在每次启动时均能够迅速获取到第一目标源数据,保证自身的正常运行的同时,也减少了自身内存占用。此外,可以改善异步方案面临的网络性能消耗大、开发效率低等问题,并且,数据接收进程在对保存的数据进行同步时不会获取本进程用不到的更新数据,相较于相关技术中的同步方案,内存占用更小。
此外,为了减少数据发送进程的内存占用,数据发送进程在启动时,也可以仅配置自身维护的数据类型标识对应的有效内存地址,即仅为自身维护的源数据类型对应的源数据分配内存空间,并用于存储对应的源数据。
示例性地,请参阅图12,图12所示为本申请另一实施例提出的一种内存空间分配示意图,在图12中,社交进程维护的数据类型标识包括帮派基础数据a、帮派成员数据b、帮派科技数据c以及帮派建筑数据d,因此,场景进程内为帮派基础数据对应的内存地址分配了内存空间3,帮派成员数据对应的内存地址分配了内存空间4,帮派科技数据标识对应的内存地址分配了内存空间5,以及帮派建筑数据对应的内存地址分配了内存空间6。
此外,考虑到相关技术中,为了将同步消息发送到指定的数据接收进程,是在数据发送进程统一添加相关数据接收进程的地址信息,然而,通常情况下,数据接收进程数量较大,在数据发送进程统一添加相关数据接收进程的地址信息,造成数据发送进程代码冗余、混杂,增加了编码难度,且易于出现漏洞。
作为一种方式,可以利用路由进程接收数据发送进程发送的同步消息,并由路由进程将同步消息转发到各个数据接收进程,如此可以降低数据发送进程冗余混杂程度。为了使得路由进程能够将同步消息准确转发到需要同步消息的数据接收进程,数据接收进程在启动时,可以向路由进程发送数据同步凭证,路由进程在接收到数据同步凭证之后,可以确定数据同步凭证对应的数据接收进程需要接收同步消息,因此,可以主动记录该数据接收进程的地址信息作为第一路由信息。路由进程在得到第一路由信息之后,便可以依据第一路由信息指示的地址,将数据发送进程发送的同步消息转发到对应的数据接收进程。
作为另外一种方式,数据发送进程内可以安装路由模块,在这种情况下,可以利用路由模块接收数据发送进程发送的同步消息,并由路由模块将同步消息转发到各个数据接收进程,如此可以降低数据发送进程冗余混杂程度。为了使得路由模块能够将同步消息准确转发到需要同步消息的数据接收进程,数据接收进程在启动时,可以向路由模块发送数据同步凭证,路由模块在接收到数据同步凭证之后,可以确定数据同步凭证对应的数据接收进程需要接收同步消息,因此,可以主动记录该数据接收进程的地址信息作为第二路由信息。路由模块在得到第二路由信息之后,便可以依据第二路由信息指示的地址,将数据发送进程发送的同步消息转发到对应的数据接收进程。
需要说明的是,本申请实施例中的路由模块是能够提供具体功能的封装好的代码模块。
通过利用上述路由进程或者路由模块接收数据发送进程发送的同步消息,并由路由进程或者路由模块将同步消息转发到各个数据接收进程,如此可以降低数据发送进程代码冗余、混杂的程度,降低编码难度,降低出现漏洞的风险。
请参阅图13,图13所示为本申请另一实施例提出的一种数据同步方法的流程图,该方法应用于数据发送进程,该方法包括:
S610,在数据发送进程内保存的至少一个数据类型的源数据发生更新后,生成同步消息,同步消息包括至少一个数据类型的源数据对应的更新数据。
S620,向数据接收进程发送同步消息,以使数据接收进程在接收到同步消息时,基于注册的数据同步模块提供的数据同步接口以及目标更新数据,对目标更新数据对应的数据进行更新,目标更新数据为数据接收进程调用数据同步模块,获取的更新数据同步消息中与数据同步模块注册的目标数据类型标识对应的数据。
S630,在满足预设条件的情况下,获取检测数据。
其中,检测数据可以理解为用于检测数据发送进程内的源数据与数据接收进程内的源数据是否一致的数据。作为一种方式,检测数据可以包括实际源数据,例如源数据的数据类型标识、源数据中数据对象的标识或者源数据对应的当前版本号等。可以理解的是,源数据中每个数据对象均存在标识,例如,对于帮派基础数据,其中的数据对象的标识可以是“逍遥派”或者“华山派”等,也可以是“成员数”、“帮派公告”等。
S640,向数据接收进程发送检测数据,以使数据接收进程在接收到检测数据,并在检测数据与数据接收进程中保存的校验数据不一致的情况下,生成第二数据获取请求。
数据发送进程在获取检测数据之后,可以向数据接收进程发送检测数据,数据接收进程在接收数据发送进程发送的检测数据之后,可以获取校验数据,从而将检测数据与校验数据进行比对,如果比对不一致,则表明数据发送进程与数据接收进程内的保存的源数据不一致,此时,数据接收进程可以生成第二数据获取请求,并向数据发送进程发送生成的第二数据获取请求。
S650,接收数据接收进程返回的第二数据获取请求。
S660,响应于第二数据获取请求,获取第二数据,第二数据包括N个数据类型的源数据,第二数据是数据发送进程接收到第二数据获取请求时已保存的数据,其中N为大于或等于1的自然数。
其中,第二数据可以理解为数据发送进程在接收到第二数据获取请求这个时刻下,数据发送进程自身保存的源数据。
作为一种方式,数据接收进程发送的第二数据获取请求用于获取数据发送进程当前已保存的全部源数据,这种情况下,第二数据获取请求可以不包括数据接收进程自身携带的目标数据类型标识,进而,当数据发送进程在响应第二数据获取请求时,获取的第二数据可以是数据发送进程内保存的所有源数据。
作为另一种方式,数据接收进程发送的第二数据获取请求用于获取数据发送进程当前已保存的全部源数据中的部分源数据,这种情况下,第二数据接收进程发送的第二数据获取请求可以包括数据接收进程自身携带的目标数据类型标识,这种情况下,当数据发送进程在响应第二数据获取请求时,获取的第二数据可以是数据发送进程内保存的与目标数据类型标识对应的源数据。
S670,向数据接收进程发送第二数据,以使数据接收进程基于数据同步模块提供的数据同步接口以及第二目标源数据,对第二目标数据对应的数据进行同步,第二目标源数据为数据接收进程调用数据同步模块,获取的第二数据中与目标数据类型标识对应的数据。
数据接收进程在获得第二数据之后,可以向数据接收进程发送第二数据,如此,数据接收进程可以接收来自数据发送进程基于第二数据获取请求返回的第二数据,并获取第二数据中的第二目标源数据,对第二目标数据对应的数据进行同步。
作为一种方式,可以通过在数据发送进程内写入获取并向数据接收进程发送检测数据,接收并响应第二数据获取请求,获取第二数据,并向数据接收进程发送第二数据的相关代码,使得数据发送进程可以实现上述S630到S670的功能。
作为另外一种方式,数据维护模块可以提供获取并向数据接收进程发送检测数据,接收并响应第二数据获取请求,获取第二数据,并向数据接收进程发送第二数据的功能,如此,可以通过在数据发送进程内注册数据维护模块,使得数据发送进程可以实现上述S630到S670的功能。
本申请实施例提供的一种数据同步方法,可以改善异步方案面临的网络性能消耗大、开发效率低等问题,并且,在数据接收进程可以实现根据目标数据类型标识按需获取对应的更新数据,如此,数据接收进程在对保存的数据进行同步时不会获取本进程用不到的更新数据,相较于相关技术中的同步方案,内存占用更小。此外,还能够降低数据丢包对数据发送进程以及数据接收进程内的源数据的影响,进一步提高数据接收进程中的源数据与数据发送进程内的源数据的一致性。
请参阅图14,图14所示为本申请另一实施例提出的一种数据同步方法的流程图,该方法应用于路由进程,该方法包括:
S710,接收来自数据发送进程的同步消息,同步消息包括至少一个数据类型的源数据对应的更新数据,同步消息是数据发送进程内保存的至少一个数据类型的源数据发生更新后生成的。
S720,根据第一路由信息向数据接收进程转发同步消息,以使数据接收进程基于注册的数据同步模块提供的数据同步接口以及目标更新数据,对目标更新数据对应的数据进行同步,目标更新数据为数据接收进程调用数据同步模块,获取的同步消息中与数据同步模块注册的目标数据类型标识对应的数据,第一路由信息是根据数据接收进程发送的数据同步凭证生成的。
路由进程分别可以与数据发送进程以及各个数据接收进程之间进行进程间通信,通过路由进程接收数据发送进程发送的同步消息,再根据第一路由信息向数据接收进程转发同步消息。
其中,第一路由信息可以理解为路由进程用于对数据接收进程进行寻址的信息。数据接收进程在启动时,可以从配置文件中读取到关联的路由进程,然后便可以将自身携带的数据同步凭证发送到关联的路由进程,如此,路由进程便可以接收到数据接收进程发送的数据同步凭证,从而确定数据同步凭证对应的数据接收进程需要接收同步消息,进而可以主动记录该数据接收进程的地址信息作为第一路由信息。
由于第一路由信息是根据数据接收进程发送的数据同步凭证生成的,因此,路由进程根据第一路由信息,可以准确将同步消息转发到携带有数据同步凭证的数据接收进程,而不会将同步消息发送到所有的数据接收进程。也即,能够接收到路由进程转发的同步消息的数据接收进程均是携带数据同步凭证的。
数据接收进程在接收路由进程转发的同步消息后,可以根据自身携带的目标数据类型标识,仅获取同步消息中与目标数据类型标识对应的目标更新数据,再基于目标更新数据,对自身保存的与目标更新数据对应的数据进行同步。
本申请实施例提供的一种数据同步方法,路由进程可以接收来自数据发送进程的同步消息,然后根据第一路由信息向数据接收进程转发同步消息,第一路由信息是根据数据接收进程发送的数据同步凭证生成的。由于第一路由信息是根据数据接收进程发送的数据同步凭证生成的,因此,路由进程根据第一路由信息,可以准确将同步消息转发到携带有数据同步凭证的数据接收进程,而不会将同步消息发送到所有的数据接收进程,相较于相关技术中在数据发送进程统一添加相关数据接收进程的地址信息,本申请实施例的方法只需要在数据接收进程按需增加数据同步凭证即可,因此,可以降低数据发送进程代码冗余、混杂的程度,降低编码难度,降低出现漏洞的风险。
此外,由于数据接收进程不需要提前向数据发送进程发起数据请求并等待回复,属于同步方案,因此可以改善异步方案面临的网络性能消耗大、开发效率低等问题,并且,数据接收进程可以在接收到数据发送进程发送的同步消息之后,从同步消息中获取与自身携带的目标数据类型标识对应的目标更新数据,即在数据接收进程可以实现根据目标数据类型标识按需获取对应的更新数据,如此,数据接收进程在对保存的数据进行同步时不会获取本进程用不到的更新数据,相较于相关技术中的同步方案,内存占用更小。
请参阅图15,图15所示为本申请另一实施例提出的一种数据同步方法的流程图,该方法应用于路由进程,该方法包括:
S810,接收来自数据接收进程的第一数据获取请求,第一数据获取请求是数据接收进程在启动时生成的。
S820,向数据发送进程转发第一数据获取请求,以使数据发送进程响应于第一数据获取请求,获取第一数据,第一数据包括M个数据类型的源数据,第一数据是数据发送进程接收到第一数据获取请求时已保存的数据,其中M为大于或等于1的自然数。
S830,接收来自数据发送进程的第一数据。
S840,向数据接收进程转发第一数据,以使数据接收进程保存第一目标源数据,第一目标源数据为数据接收进程调用数据同步模块,获取的第一数据中与目标数据类型标识对应的数据。
S850,接收来自数据发送进程的同步消息,同步消息包括至少一个数据类型的源数据对应的更新数据,同步消息是数据发送进程内保存的至少一个数据类型的源数据发生更新后生成的。
S860,根据第一路由信息向数据接收进程转发同步消息,以使数据接收进程基于注册的数据同步模块提供的数据同步接口以及目标更新数据,对目标更新数据对应的数据进行同步,目标更新数据为数据接收进程调用数据同步模块,获取的同步消息中与同步模块注册的目标数据类型标识对应的数据,第一路由信息是根据数据接收进程发送的数据同步凭证生成的。
示例性地,请参阅图16,图16所示为本申请一实施例提出的一种数据同步方法的交互过程示意图,在图16中,数据接收进程在启动时,生成第一数据获取请求,并向路由进程发送第一数据获取请求,路由进程向数据发送进程转发第一数据获取请求,数据发送进程响应于第一数据获取请求,获取第一数据,数据发送进程向路由进程发送第一数据,路由进程根据第一路由信息向数据接收进程发送第一数据,数据接收进程保存第一数据中与目标数据类型标识对应的第一目标源数据。
在数据发送进程内保存的至少一个数据类型的源数据发生更新后,数据发送进程生成同步消息,并向路由进程发送同步消息,路由进程根据第一路由信息向数据接收进程发送同步消息,数据接收进程获取同步消息中与目标数据类型标识对应的目标更新数据,并基于目标更新数据,对目标更新数据对应的数据进行同步。
本申请实施例提供的一种数据同步方法,路由进程可以接收数据接收进程在启动时生成的第一数据获取请求,并向数据发送进程转发第一数据获取请求,然后再接收数据发送进程返回的第一数据,再向数据接收进程转发第一数据,以使数据接收进程从第一数据中获取与目标数据类型标识对应的第一目标源数据进行保存,从而通过该过程,使得数据接收进程在每次启动时均能够迅速获取到第一目标源数据,保证自身的正常运行的同时,也减少了自身内存占用。
此外,由于数据接收进程不需要提前向数据发送进程发起数据请求并等待回复,属于同步方案,因此可以改善异步方案面临的网络性能消耗大、开发效率低等问题,并且,数据接收进程可以在接收到数据发送进程发送的同步消息之后,从同步消息中获取与自身携带的目标数据类型标识对应的目标更新数据,即在数据接收进程可以实现根据目标数据类型标识按需获取对应的更新数据,如此,数据接收进程在对保存的数据进行同步时不会获取本进程用不到的更新数据,相较于相关技术中的同步方案,内存占用更小。
请参阅图17,图17所示为本申请另一实施例提出的一种数据同步方法的流程图,该方法应用于路由进程,该方法包括:
S910,接收来自数据发送进程的同步消息,同步消息包括至少一个数据类型的源数据对应的更新数据,同步消息是数据发送进程内保存的至少一个数据类型的源数据发生更新后生成的。
S920,根据第一路由信息向数据接收进程转发同步消息,以使数据接收进程基于注册的数据同步模块提供的数据同步接口以及目标更新数据,对目标更新数据对应的数据进行同步,目标更新数据为数据接收进程调用数据同步模块,获取的同步消息中与数据同步模块注册的目标数据类型标识对应的数据,第一路由信息是根据数据接收进程发送的数据同步凭证生成的。
S930,接收来自数据发送进程的检测数据,检测数据是数据发送进程在满足预设条件的情况下获取的;
S940,根据第一路由信息向数据接收进程转发检测数据,以使数据接收进程在接收到检测数据,并在检测数据与校验数据不一致的情况下,生成第二数据获取请求。
S950,接收来自数据接收进程的第二数据获取请求。
S960,向数据发送进程转发第二数据获取请求,以使数据发送进程响应于第二数据获取请求,获取第二数据,第二数据包括N个数据类型的源数据,第二数据是数据发送进程接收到第二数据获取请求时已保存的数据,其中N为大于或等于1的自然数。
S970,接收来自数据发送进程的第二数据。
S980,根据第一路由信息向数据接收进程转发第二数据,以使数据接收进程基于数据同步接口以及第二目标源数据,对第二目标数据对应的数据进行同步,第二目标源数据为数据接收进程调用数据同步模块,获取的第二数据中与目标数据类型标识对应的数据。
示例性地,请参阅图18,图18所示为本申请另一实施例提出的一种数据同步方法的交互过程示意图,在图18中,在数据发送进程内保存的至少一个数据类型的源数据发生更新后,数据发送进程生成同步消息,并向路由进程发送同步消息,路由进程根据第一路由信息向数据接收进程转发同步消息,数据接收进程获取同步消息中与目标数据类型标识对应的目标更新数据,并基于目标更新数据,对目标更新数据对应的第一目标源数据进行同步。
在满足预设条件的情况下,数据发送进程获取检测数据,并向路由进程发送检测数据,路由进程根据第一路由信息向数据接收进程转发检测数据,数据接收进程接收检测数据,并在检测数据与校验数据不一致的情况下,生成第二数据获取请求,数据接收进程向路由进程发送第二数据获取请求,路由进程向数据发送进程转发第二数据获取请求,数据发送进程响应于第二数据获取请求,获取第二数据,数据发送进程向路由进程发送第二数据,路由进程根据第一路由信息向数据接收进程转发第二数据,数据接收进程获取第二数据中与目标数据类型标识对应的第二目标源数据,并基于第二目标源数据,对第二目标源数据对应的数据进行同步。
本申请实施例提供的一种数据同步方法,由于数据接收进程不需要提前向数据发送进程发起数据请求并等待回复,属于同步方案,因此可以改善异步方案面临的网络性能消耗大、开发效率低等问题,并且,数据接收进程可以在接收到数据发送进程发送的同步消息之后,从同步消息中获取与自身携带的目标数据类型标识对应的目标更新数据,即在数据接收进程可以实现根据目标数据类型标识按需获取对应的更新数据,如此,数据接收进程在对保存的数据进行同步时不会获取本进程用不到的更新数据,相较于相关技术中的同步方案,内存占用更小。
此外,路由进程可以将数据发送进程发送的检测数据转发到数据接收进程,然后将数据接收进程在比对检测数据与校验数据不一致的情况下发送的第二数据获取请求转发到数据发送进程,再将数据发送进程获取的第二数据转发到数据接收进程,以使数据接收进程获取第二数据中的第二目标源数据,并基于第二目标源数据,对第二目标源数据对应的数据进行同步,从而通过该过程,能够检测数据发送进程以及数据接收进程内的源数据是否一致,并在不一致的情况下,获取第二目标源数据对数据接收进程内的源数据进行同步,降低数据丢包对数据发送进程以及数据接收进程内的源数据的影响,进一步提高数据接收进程中的源数据与数据发送进程内的源数据的一致性。
请参阅图19,图19所示为本申请另一实施例提出的一种数据同步方法的流程图,该方法由数据发送进程、路由进程以及数据发送进程交互执行,该方法包括:
S1010,数据发送进程在自身保存的至少一个数据类型的源数据发生更新后,生成同步消息。
S1020,数据发送进程向路由进程发送同步消息。
S1030,路由进程根据第一路由信息向数据接收进程转发同步消息。
S1040,数据接收进程调用数据同步模块获取同步消息中与目标数据类型标识对应的目标更新数据。
S1050,数据接收进程基于注册的数据同步模块提供的数据同步接口以及目标更新数据,对目标更新数据对应的数据进行同步。
本申请实施例提供的一种数据同步方法,由于数据接收进程不需要提前向数据发送进程发起数据请求并等待回复,属于同步方案,因此可以改善异步方案面临的网络性能消耗大、开发效率低等问题,并且,数据接收进程可以在接收到路由进程发送的来自数据发送进程的同步消息之后,从同步消息中获取与自身携带的目标数据类型标识对应的目标更新数据,即在数据接收进程可以实现根据目标数据类型标识按需获取对应的更新数据,如此,数据接收进程在对保存的数据进行同步时不会获取本进程用不到的更新数据,相较于相关技术中的同步方案,内存占用更小。
下面结合一种具体使用场景对本申请实施例的数据同步方法进行详细说明:
以游戏数据使用场景为例,其中该游戏可以是大型多人在线角色扮演游戏,例如,天涯明月刀手游。在天涯明月刀手游中,帮派系统是一种重要的玩法,通过帮派系统增加了玩家的玩法多样性。在天涯明月刀手游中,帮派类数据支撑帮派系统的正常运行,通常由游戏厂商的服务器进程维护,玩家可以通过客户端修改帮派类数据,即通过客户端向服务器发送帮派类数据的更新请求,服务器在接收到数据更新请求,对源数据进行修改,进而再将修改后的源数据在前端界面展示给所有帮派中的玩家。
参考图20,图20为本申请实施例提供的数据同步前帮派界面前端显示示意图,帮派界面可以包括帮派信息选择区域301、帮派信息详情展示区域302以及帮派地图展示区域303,帮派信息选择区域301中列出了帮派基础数据、帮派成员数据、帮派科技数据以及帮派建筑数据这4种类型的源数据,帮派信息详情展示区域302用于展示玩家选择的帮派信息的详情,帮派地图展示区域303展示帮派地图。玩家可以在帮派信息选择区域301进行选择,从而查看对应的帮派信息。
如图20所示,在玩家选中帮派基础数据时,帮派基础数据这一项以高亮显示,区别于其他几项,并且,在选中帮派基础数据之后,在帮派信息选择区域301左侧的帮派信息详情展示区域302会显示帮派基础数据这个源数据包括的所有数据,显示的帮派基础数据包括“帮派名称:逍遥派”、“等级:1”、“公告:暂无”以及“成员数:49/50”。
当玩家在客户端对帮派基础数据中的“公告”进行修改之后,例如修改为“娱乐帮派,大家玩的开心”,这时会向服务器发送数据更新请求。又或者,当玩家完成任务时,可以使得帮派基础数据中的帮派等级从1级提升到2级,同样会向服务器发送数据更新请求。
在客户端向服务器发送数据更新请求之后,可以使得服务器的数据发送进程,例如社交进程维护的帮派基础数据发生更新。参考图21,图21为本申请实施例提供的数据同步后帮派界面前端显示示意图,由于帮派公告以及帮派等级发生了更新,因此,在玩家再次选中帮派基础数据时,帮派基础数据这一项以高亮显示后,在帮派信息选择区域左侧会显示帮派基础数据这个源数据包括的所有更新后的数据,此时显示的帮派基础数据包括“帮派名称:逍遥派”、“等级:2”、“公告:娱乐帮派,大家玩的开心”以及“成员数:49/50”。
在社交进程维护的帮派基础数据发生更新之后,社交进程可以生成同步消息,并将同步消息发送到数据接收进程,例如拍卖进程,数据接收进程便可以接收来自数据发送进程的同步消息,由于拍卖进程需要用到帮派基础数据,因此拍卖进程注册有数据同步模块,且数据同步模块内注册有帮派基础数据,如此,拍卖进程可以调用数据同步模块,获取同步消息中的帮派基础数据,并利用同步消息中的帮派基础数据对自身进程内的帮派基础数据进行更新。如此,当在前端执行帮派拍卖时,可以使用同步后的帮派基础数据。
请结合图22和图23所示,图22示出了拍卖进程在数据同步之前,前端界面进行拍卖玩法时对应的可拍卖物品。图23示出了拍卖进程在数据同步之后,前端界面进行拍卖玩法时对应的可拍卖物品。在拍卖进程内保存的数据同步之前,拍卖进程中逍遥派的帮派等级为1,此时逍遥派只能拍卖1级物品,当利用同步消息中的帮派基础数据对拍卖进程内的帮派基础数据进行更新之后,拍卖进程中逍遥派的等级为2,此时逍遥派能够拍卖2级物品。
请参阅图24,图24示出了本申请一实施例提出的一种数据同步装置1100的框图,该装置1100应用于数据接收进程,该数据接收进程注册有数据同步模块,该数据同步模块注册有目标数据类型标识,该装置1100包括同步消息第一接收模块1110、目标更新数据获取模块1120以及第一数据同步模块1130。
同步消息第一接收模块1110,用于接收来自数据发送进程的同步消息,同步消息包括至少一个数据类型的源数据对应的更新数据,同步消息是数据发送进程内保存的至少一个数据类型的源数据发生更新后生成的。
目标更新数据获取模块1120,用于调用数据同步模块,获取同步消息中与目标数据类型标识对应的目标更新数据。
第一数据同步模块1130,用于基于数据同步模块提供的数据同步接口以及目标更新数据,对目标更新数据对应的数据进行同步。
作为一种方式,同步消息还包括数据操作类型,数据操作类型包括创建操作、修改操作或者删除操作,数据同步接口包括数据创建接口、数据修改接口以及数据删除接口,第一数据同步模块1130,包括第一数据同步子模块、第二数据同步子模块以及第三数据同步子模块。
第一数据同步子模块,用于在数据操作类型为创建操作时,基于数据创建接口以及目标更新数据,对目标更新数据对应的数据进行同步。
第二数据同步子模块,用于在数据操作类型为修改操作时,基于数据修改接口以及目标更新数据,对目标更新数据对应的数据进行同步。
第三数据同步子模块,用于在数据操作类型为删除操作时,基于数据删除接口以及目标更新数据,对目标更新数据对应的数据进行同步。
作为一种方式,该装置1100还包括第一数据获取请求发送模块、第一数据第一接收模块、第一目标源数据获取模块以及数据保存模块。
第一数据获取请求发送模块,用于在数据接收进程启动时,向数据发送进程发送第一数据获取请求。
第一数据接第一收模块,用于接收数据发送进程基于第一数据获取请求返回的第一数据,第一数据包括M个数据类型的源数据,第一数据是数据发送进程接收到第一数据获取请求时已保存的数据,其中M为大于或等于1的自然数。
第一目标源数据获取模块,用于调用数据同步模块,获取第一数据中与目标数据类型标识对应的第一目标源数据。
数据保存模块,用于检测数据第一接收模块保存第一目标源数据。
作为一种方式,接收进程中保存的数据包括校验数据,该装置1100还包括、第二数据获取请求发送模块、第二数据第一接收模块、第二目标源数据获取模块以及第二数据同步模块。
检测数据第一接收模块,用于接收来自数据发送进程的检测数据,检测数据是数据发送进程在满足预设条件的情况下获取的。
第二数据获取请求发送模块,用于在检测数据与校验数据不一致的情况下,向数据发送进程发送第二数据获取请求。
第二数据第一接收模块,用于接收数据发送进程基于第二数据获取请求返回的第二数据,第二数据包括N个数据类型的源数据,第二数据是数据发送进程接收到第二数据获取请求时已保存的数据,其中N为大于或等于1的自然数。
第二目标源数据获取模块,用于调用数据同步模块,获取第二数据中与目标数据类型标识对应的第二目标源数据。
第二数据同步模块,用于基于数据同步模块提供的数据同步接口以及第二目标源数据,对第二目标数据对应的数据进行同步。
作为一种方式,该装置1100还包括配置模块。
配置模块,用于在数据接收进程启动时,配置与目标数据类型标识对应的有效内存地址,有效内存地址为分配有对应的内存空间的内存地址。
在该种方式下,第一数据同步模块1130,包括第四数据同步子模块。
第四数据同步子模块,用于基于数据同步模块提供的数据同步接口以及目标更新数据,对内存空间中保存的与目标更新数据对应的数据进行同步。
作为一种方式,数据同步模块携带数据同步凭证,该装置1100还包括数据同步凭证发送模块。
数据同步凭证发送模块,用于在数据接收进程启动时,将数据同步凭证发送到路由进程,以使路由进程根据数据同步凭证生成第一路由信息;
在该种方式下,同步消息第一接收模块1110,包括同步消息接收子模块。
同步消息接收子模块,用于接收路由进程根据第一路由信息转发的同步消息,同步消息是数据发送进程发送到路由进程的。
作为一种方式,数据接收进程注册有数据同步模块,数据同步模块注册有目标数据类型标识,目标更新数据获取模块1120包括目标更新数据获取获取子模块。
目标更新数据获取获取子模块,用于调用数据同步模块,获取同步消息中与目标数据类型标识对应的目标更新数据。
本申请提供的一种数据同步装置,由于数据接收进程不需要提前向数据发送进程发起数据请求并等待回复,属于同步方案,因此可以改善异步方案面临的网络性能消耗大、开发效率低等问题,并且,数据接收进程可以在接收到数据发送进程发送的同步消息之后,从同步消息中获取与自身携带的目标数据类型标识对应的目标更新数据,即在数据接收进程可以实现根据目标数据类型标识按需获取对应的更新数据,如此,数据接收进程在对保存的数据进行同步时不会获取本进程用不到的更新数据,相较于相关技术中的同步方案,内存占用更小。
请参阅图25,图25示出了本申请一实施例提出的一种数据同步装置1200的框图,该装置1200应用于数据发送进程,该装置1200包括同步消息生成模块1210以及同步消息发送模块1220。
同步消息生成模块1210,用于在数据发送进程内保存的至少一个数据类型的源数据发生更新后,生成同步消息,同步消息包括至少一个数据类型的源数据对应的更新数据。
同步消息发送模块1220,用于向数据接收进程发送同步消息,以使数据接收进程在接收到同步消息时,基于注册的数据同步模块提供的数据同步接口以及目标更新数据,对目标更新数据对应的数据进行同步,目标更新数据为数据接收进程调用数据同步模块,获取的同步消息中与数据同步模块注册的目标数据类型标识对应的数据。
作为一种方式,该装置1200还包括第一数据获取请求第一接收模块、第一数据获取模块以及第一数据发送模块。
第一数据获取请求第一接收模块,用于接收来自数据接收进程的第一数据获取请求,第一数据获取请求是数据接收进程在启动时生成的。
第一数据获取模块,用于响应于第一数据获取请求,获取第一数据,第一数据包括M个数据类型的源数据,第一数据是数据发送进程接收到第一数据获取请求时已保存的数据,其中M为大于或等于1的自然数。
第一数据发送模块,用于向数据接收进程发送第一数据,以使数据接收进程保存第一目标源数据,第一目标源数据为数据接收进程调用数据同步模块,获取的第一数据中与目标数据类型标识对应的数据。
作为一种方式,该装置1200还包括检测数据获取模块、检测数据发送模块、第二数据获取请求第一接收模块、第二数据获取模块以及第二数据发送模块。
检测数据获取模块,用于在满足预设条件的情况下,获取检测数据。
检测数据发送模块,用于向数据接收进程发送检测数据,以使数据接收进程在接收到检测数据,并在检测数据与数据接收进程中保存的校验数据不一致的情况下,生成第二数据获取请求。
第二数据获取请求第一接收模块,用于接收数据接收进程返回的第二数据获取请求。
第二数据获取模块,用于响应于第二数据获取请求,获取第二数据,第二数据包括N个数据类型的源数据,第二数据是数据发送进程接收到第二数据获取请求时已保存的数据,其中N为大于或等于1的自然数。
第二数据发送模块,用于向数据接收进程发送第二数据,以使数据接收进程基于数据同步模块提供的数据同步接口以及第二目标源数据,对第二目标数据对应的数据进行同步,第二目标源数据为数据接收进程调用数据同步模块,获取的第二数据中与目标数据类型标识对应的数据。
作为一种方式,同步消息发送模块1220包括同步消息发送子模块。
同步消息发送子模块,用于向路由进程发送同步消息,以使路由进程根据第一路由信息向数据接收进程转发同步消息,第一路由信息是路由进程根据数据接收进程携带的数据同步凭证生成的。
作为一种方式,数据发送进程包括路由模块,该装置1200还包括数据同步凭证接收模块以及第二路由信息生成模块。
数据同步凭证接收模块,用于路由模块接收来自数据接收进程的数据同步凭证。
第二路由信息生成模块,用于路由模块根据数据同步凭证生成第二路由信息。
该种方式下,同步消息发送模块还用于路由模块根据第二路由信息向数据接收进程发送同步消息。
作为一种方式,数据发送进程注册有数据维护模块,同步消息生成模块1210包括同步消息生成子模块。
同步消息生成子模块,用于调用数据维护模块,生成同步消息。
本申请提供的一种数据同步装置,由于数据接收进程不需要提前向数据发送进程发起数据请求并等待回复,属于同步方案,因此可以改善异步方案面临的网络性能消耗大、开发效率低等问题,并且,数据接收进程可以在接收到数据发送进程发送的同步消息之后,从同步消息中获取与自身携带的目标数据类型标识对应的目标更新数据,即在数据接收进程可以实现根据目标数据类型标识按需获取对应的更新数据,如此,数据接收进程在对保存的数据进行同步时不会获取本进程用不到的更新数据,相较于相关技术中的同步方案,内存占用更小。
请参阅图26,图26示出了本申请一实施例提出的一种数据同步装置1200的框图,该装置1300应用于路由进程,该装置1300包括同步消息第二接收模块1310以及同步消息转发模块1320。
同步消息第二接收模块1310,用于接收来自数据发送进程的同步消息,同步消息包括至少一个数据类型的源数据对应的更新数据,同步消息是数据发送进程内保存的至少一个数据类型的源数据发生更新后生成的;
同步消息转发模块1320,用于根据第一路由信息向数据接收进程转发同步消息,以使数据接收进程基于注册的数据同步模块提供的数据同步接口以及目标更新数据,对目标更新数据对应的数据进行同步,目标更新数据为数据接收进程调用数据同步模块,获取的同步消息中与数据同步模块注册的目标数据类型标识对应的数据,第一路由信息是根据数据接收进程发送的数据同步凭证生成的。
作为一种方式,该装置1300还包括第一数据获取第二请求接收模块、第一数据获取请求转发模块、第一数据第二接收模块以及第一数据转发模块。
第一数据获取第二请求接收模块,用于接收来自数据接收进程的第一数据获取请求,第一数据获取请求是数据接收进程在启动时生成的。
第一数据获取请求转发模块,用于向数据发送进程转发第一数据获取请求,以使数据发送进程响应于第一数据获取请求,获取第一数据,第一数据包括M个数据类型的源数据,第一数据是数据发送进程接收到第一数据获取请求时已保存的数据,其中M为大于或等于1的自然数。
第一数据第二接收模块,用于接收来自数据发送进程的第一数据。
第一数据转发模块,用于根据第一路由信息向数据接收进程转发第一数据,以使数据接收进程保存第一目标源数据,第一目标源数据为第一数据中与目标数据类型标识对应的数据。
作为一种方式,该装置1300还包括检测数据第二接收模块、检测数据转发模块、第二数据获取请求第二接收模块、第二数据获取请求转发模块、第二数据第二接收模块以及第二数据转发模块。
检测数据第二接收模块,用于接收来自数据发送进程的检测数据,检测数据是数据发送进程在满足预设条件的情况下获取的。
检测数据转发模块,用于根据第一路由信息向数据接收进程转发检测数据,以使数据接收进程在接收到检测数据,并在检测数据与校验数据不一致的情况下,生成第二数据获取请求。
第二数据获取请求第二接收模块,用于接收来自数据接收进程的第二数据获取请求。
第二数据获取请求转发模块,用于向数据发送进程转发第二数据获取请求,以使数据发送进程响应于第二数据获取请求,获取第二数据,第二数据包括N个数据类型的源数据,第二数据是数据发送进程接收到第二数据获取请求时已保存的数据,其中N为大于或等于1的自然数。
第二数据第二接收模块,用于接收来自数据发送进程的第二数据。
第二数据转发模块,用于根据第一路由信息向数据接收进程转发第二数据,以使数据接收进程基于数据同步接口以及第二目标源数据,对第二目标数据对应的数据进行同步,第二目标源数据为第二数据中与目标数据类型标识对应的数据。
本申请提供的一种数据同步装置,由于数据接收进程不需要提前向数据发送进程发起数据请求并等待回复,属于同步方案,因此可以改善异步方案面临的网络性能消耗大、开发效率低等问题,并且,数据接收进程可以在接收到数据发送进程发送的同步消息之后,从同步消息中获取与自身携带的目标数据类型标识对应的目标更新数据,即在数据接收进程可以实现根据目标数据类型标识按需获取对应的更新数据,如此,数据接收进程在对保存的数据进行同步时不会获取本进程用不到的更新数据,相较于相关技术中的同步方案,内存占用更小。
需要说明的是,本申请中装置实施例与前述方法实施例是相互对应的,装置实施例中具体的原理可以参见前述方法实施例中的内容,此处不再赘述。
下面将结合图27对本申请提供的一种电子设备进行说明。
请参阅图27,基于上述的数据同步方法,本申请实施例还提供的另一种包括可以执行前述数据同步方法的处理器104的电子设备200,该电子设备200可以为智能手机、平板电脑、计算机或者便携式计算机等设备。电子设备200还包括存储器104、网络模块106以及屏幕108。其中,该存储器104中存储有可以执行前述实施例中内容的程序,而处理器102可以执行该存储器104中存储的程序。
其中,处理器102可以包括一个或者多个用于处理数据的核以及消息矩阵单元。处理器102利用各种接口和线路连接整个电子设备200内的各个部分,通过运行或执行存储在存储器104内的指令、程序、代码集或指令集,以及调用存储在存储器104内的数据,执行电子设备200的各种功能和处理数据。可选地,处理器102可以采用数字信号处理(DigitalSignal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器102可集成中央处理器(Central Processing Unit,CPU)、图像处理器(GraphicsProcessing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器102中,单独通过一块通信芯片进行实现。
存储器104可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器104可用于存储指令、程序、代码、代码集或指令集。存储器104可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储终端100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
网络模块106用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者其他设备进行通讯,例如和音频播放设备进行通讯。网络模块106可包括各种现有的用于执行这些功能的电路元件,例如,天线、射频收发器、数字信号处理器、加密/解密芯片、用户身份模块(SIM)卡、存储器等等。网络模块106可与各种网络如互联网、企业内部网、无线网络进行通讯或者通过无线网络与其他设备进行通讯。上述的无线网络可包括蜂窝式电话网、无线局域网或者城域网。例如,网络模块106可以与基站进行信息交互。
屏幕108可以进行界面内容的显示,也可以用于响应触控手势。
需要说明的是,为了实现更多的功能,电子设备200还可以保护更多的器件,例如,还可以保护用于进行人脸信息采集的结构光传感器或者还可以保护用于采集虹膜的摄像头等。
请参考图28,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质1400中存储有程序代码,程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质1400可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质1400包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质1400具有执行上述方法中的任何方法步骤的程序代码1410的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码1410可以例如以适当形式进行压缩。
基于上述的数据同步方法,根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的各种可选实现方式中提供的方法。
综上,本申请实施例提供的一种数据同步方法、装置、电子设备、存储介质及计算机程序产品或计算机程序,数据接收进程可以先接收来自数据发送进程的同步消息,然后获取同步消息中与目标数据类型标识对应的目标更新数据,再基于目标更新数据,对目标更新数据对应的数据进行同步。由于数据接收进程不需要提前向数据发送进程发起数据请求并等待回复,属于同步方案,因此可以改善异步方案面临的网络性能消耗大、开发效率低等问题,并且,数据接收进程可以在接收到数据发送进程发送的同步消息之后,从同步消息中获取与自身携带的目标数据类型标识对应的目标更新数据,即在数据接收进程可以实现根据目标数据类型标识按需获取对应的更新数据,如此,数据接收进程在对保存的数据进行同步时不会获取本进程用不到的更新数据,相较于相关技术中的同步方案,内存占用更小。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (15)
1.一种数据同步方法,其特征在于,应用于数据接收进程,所述数据接收进程注册有数据同步模块,所述数据同步模块注册有目标数据类型标识,所述方法包括:
接收来自数据发送进程的同步消息,所述同步消息包括至少一个数据类型的源数据对应的更新数据,所述同步消息是所述数据发送进程内保存的至少一个数据类型的源数据发生更新后生成的;
调用所述数据同步模块,获取所述同步消息中与所述目标数据类型标识对应的目标更新数据;
基于所述数据同步模块提供的数据同步接口以及所述目标更新数据,对所述目标更新数据对应的数据进行同步。
2.根据权利要求1所述的方法,其特征在于,所述同步消息还包括数据操作类型,所述数据操作类型包括创建操作、修改操作或者删除操作,所述数据同步接口包括数据创建接口、数据修改接口以及数据删除接口,所述基于所述数据同步模块提供的数据同步接口以及所述目标更新数据,对所述目标更新数据对应的数据进行同步,包括:
在所述数据操作类型为创建操作时,基于所述数据创建接口以及所述目标更新数据,对所述目标更新数据对应的数据进行同步;或者
在所述数据操作类型为修改操作时,基于所述数据修改接口以及所述目标更新数据,对所述目标更新数据对应的数据进行同步;或者
在所述数据操作类型为删除操作时,基于所述数据删除接口以及所述目标更新数据,对所述目标更新数据对应的数据进行同步。
3.根据权利要求1所述的方法,其特征在于,所述接收来自数据发送进程的同步消息之前,所述方法还包括:
在所述数据接收进程启动时,向所述数据发送进程发送第一数据获取请求;
接收所述数据发送进程基于所述第一数据获取请求返回的第一数据,所述第一数据包括M个数据类型的源数据,所述第一数据是所述数据发送进程接收到所述第一数据获取请求时已保存的数据,其中M为大于或等于1的自然数;
调用所述数据同步模块,获取所述第一数据中与所述目标数据类型标识对应的第一目标源数据;
保存所述第一目标源数据。
4.根据权利要求1所述的方法,其特征在于,所述接收进程中保存的数据包括校验数据,所述方法还包括:
接收来自所述数据发送进程的检测数据,所述检测数据是所述数据发送进程在满足预设条件的情况下获取的;
在所述检测数据与所述校验数据不一致的情况下,向所述数据发送进程发送第二数据获取请求;
接收所述数据发送进程基于所述第二数据获取请求返回的第二数据,所述第二数据包括N个数据类型的源数据,所述第二数据是所述数据发送进程接收到所述第二数据获取请求时已保存的数据,其中N为大于或等于1的自然数;
调用所述数据同步模块,获取所述第二数据中与所述目标数据类型标识对应的第二目标源数据;
基于所述数据同步模块提供的数据同步接口以及所述第二目标源数据,对所述第二目标数据对应的数据进行同步。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述数据接收进程启动时,配置与所述目标数据类型标识对应的有效内存地址,所述有效内存地址为分配有对应的内存空间的内存地址;
所述基于所述目标更新数据,对所述目标更新数据对应的数据进行同步,包括:
基于所述数据同步模块提供的数据同步接口以及所述目标更新数据,对所述内存空间中保存的与所述目标更新数据对应的数据进行同步。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述数据同步模块携带数据同步凭证,所述方法还包括:
在所述数据接收进程启动时,将所述数据同步凭证发送到路由进程,以使所述路由进程根据所述数据同步凭证生成第一路由信息;
所述接收来自数据发送进程的同步消息,包括:
接收所述路由进程根据所述第一路由信息转发的所述同步消息,所述同步消息是所述数据发送进程发送到所述路由进程的。
7.一种数据同步方法,其特征在于,应用于数据发送进程,所述方法包括:
在所述数据发送进程内保存的至少一个数据类型的源数据发生更新后,生成同步消息,所述同步消息包括至少一个数据类型的源数据对应的更新数据;
向数据接收进程发送所述同步消息,以使所述数据接收进程在接收到所述同步消息时,基于注册的数据同步模块提供的数据同步接口以及目标更新数据,对所述目标更新数据对应的数据进行同步,所述目标更新数据为所述数据接收进程调用所述数据同步模块,获取的所述同步消息中与所述数据同步模块注册的目标数据类型标识对应的数据。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
接收来自所述数据接收进程的第一数据获取请求,所述第一数据获取请求是所述数据接收进程在启动时生成的;
响应于所述第一数据获取请求,获取第一数据,所述第一数据包括M个数据类型的源数据,所述第一数据是所述数据发送进程接收到所述第一数据获取请求时已保存的数据,其中M为大于或等于1的自然数;
向所述数据接收进程发送所述第一数据,以使所述数据接收进程保存第一目标源数据,所述第一目标源数据为所述数据接收进程调用所述数据同步模块,获取的所述第一数据中与所述目标数据类型标识对应的数据。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括:
在满足预设条件的情况下,获取检测数据;
向所述数据接收进程发送所述检测数据,以使所述数据接收进程在接收到所述检测数据,并在所述检测数据与所述数据接收进程中保存的校验数据不一致的情况下,生成第二数据获取请求;
接收所述数据接收进程返回的所述第二数据获取请求;
响应于所述第二数据获取请求,获取第二数据,所述第二数据包括N个数据类型的源数据,所述第二数据是所述数据发送进程接收到所述第二数据获取请求时已保存的数据,其中N为大于或等于1的自然数;
向所述数据接收进程发送所述第二数据,以使所述数据接收进程基于所述数据同步模块提供的数据同步接口以及第二目标源数据,对所述第二目标数据对应的数据进行同步,所述第二目标源数据为所述数据接收进程调用所述数据同步模块,获取的所述第二数据中与所述目标数据类型标识对应的数据。
10.一种数据同步方法,其特征在于,应用于路由进程,所述方法包括:
接收来自数据发送进程的同步消息,所述同步消息包括至少一个数据类型的源数据对应的更新数据,所述同步消息是所述数据发送进程内保存的至少一个数据类型的源数据发生更新后生成的;
根据第一路由信息向数据接收进程转发所述同步消息,以使所述数据接收进程基于注册的数据同步模块提供的数据同步接口以及目标更新数据,对所述目标更新数据对应的数据进行同步,所述目标更新数据为所述数据接收进程调用所述数据同步模块,获取的所述同步消息中与所述数据同步模块注册的目标数据类型标识对应的数据,所述第一路由信息是根据所述数据接收进程发送的数据同步凭证生成的。
11.一种数据同步装置,其特征在于,应用于数据接收进程,所述数据接收进程注册有数据同步模块,所述数据同步模块注册有目标数据类型标识,所述装置包括:
同步消息第一接收模块,用于接收来自数据发送进程的同步消息,所述同步消息包括至少一个数据类型的源数据对应的更新数据,所述同步消息是所述数据发送进程内保存的至少一个数据类型的源数据发生更新后生成的;
目标更新数据获取模块,用于调用所述数据同步模块,获取所述同步消息中与所述目标数据类型标识对应的目标更新数据;
更新模块,用于基于所述数据同步模块提供的数据同步接口以及所述目标更新数据,对所述目标更新数据对应的数据进行同步。
12.一种数据同步装置,其特征在于,应用于数据发送进程,所述装置包括:
同步消息生成模块,用于在所述数据发送进程内保存的至少一个数据类型的源数据发生更新后,生成同步消息,所述同步消息包括至少一个数据类型的源数据对应的更新数据;
同步消息发送模块,用于向数据接收进程发送所述同步消息,以使所述数据接收进程在接收到所述同步消息时,基于注册的数据同步模块提供的数据同步接口以及目标更新数据,对所述目标更新数据对应的数据进行同步,所述目标更新数据为所述数据接收进程调用所述数据同步模块,获取的所述同步消息中与所述数据同步模块注册的目标数据类型标识对应的数据。
13.一种数据同步装置,其特征在于,应用于路由进程,所述装置包括:
同步消息第二接收模块,用于接收来自数据发送进程的同步消息,所述同步消息包括至少一个数据类型的源数据对应的更新数据,所述同步消息是所述数据发送进程内保存的至少一个数据类型的源数据发生更新后生成的;
同步消息转发模块,用于根据第一路由信息向数据接收进程转发所述同步消息,以使所述数据接收进程基于注册的数据同步模块提供的数据同步接口以及目标更新数据,对所述目标更新数据对应的数据进行同步,所述目标更新数据为所述数据接收进程调用所述数据同步模块,获取的所述同步消息中与所述数据同步模块注册的目标数据类型标识对应的数据,所述第一路由信息是根据所述数据接收进程发送的数据同步凭证生成的。
14.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行如权利要求1-6任一项或者如权利要求7-9任一项或者如权利要求10任一项所述的方法。
15.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-6任一项或者如权利要求7-9任一项或者如权利要求10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011294567.6A CN112245906B (zh) | 2020-11-18 | 2020-11-18 | 数据同步方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011294567.6A CN112245906B (zh) | 2020-11-18 | 2020-11-18 | 数据同步方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112245906A true CN112245906A (zh) | 2021-01-22 |
CN112245906B CN112245906B (zh) | 2023-08-25 |
Family
ID=74266160
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011294567.6A Active CN112245906B (zh) | 2020-11-18 | 2020-11-18 | 数据同步方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112245906B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113204378A (zh) * | 2021-04-21 | 2021-08-03 | 深圳市广和通无线股份有限公司 | 配置文件状态同步方法、装置、终端、服务器和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107172169A (zh) * | 2017-05-27 | 2017-09-15 | 广东欧珀移动通信有限公司 | 数据同步方法、装置、服务器及存储介质 |
US20180018381A1 (en) * | 2015-04-01 | 2018-01-18 | Alibaba Group Holding Limited | Remote database synchronization |
CN108804697A (zh) * | 2018-06-15 | 2018-11-13 | 中国平安人寿保险股份有限公司 | 基于Spark的数据同步方法、装置、计算机设备和存储介质 |
CN110120889A (zh) * | 2019-05-06 | 2019-08-13 | 网易(杭州)网络有限公司 | 数据处理方法、设备及计算机存储介质 |
CN110602165A (zh) * | 2019-08-08 | 2019-12-20 | 数字广东网络建设有限公司 | 政务数据同步方法、装置、系统、计算机设备和存储介质 |
CN111752910A (zh) * | 2020-06-24 | 2020-10-09 | 上海微盟企业发展有限公司 | 一种异构平台的数据同步方法、系统和相关装置 |
CN111813550A (zh) * | 2020-07-08 | 2020-10-23 | 深圳市腾讯网域计算机网络有限公司 | 数据处理方法、装置、服务器和存储介质 |
-
2020
- 2020-11-18 CN CN202011294567.6A patent/CN112245906B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180018381A1 (en) * | 2015-04-01 | 2018-01-18 | Alibaba Group Holding Limited | Remote database synchronization |
CN107172169A (zh) * | 2017-05-27 | 2017-09-15 | 广东欧珀移动通信有限公司 | 数据同步方法、装置、服务器及存储介质 |
CN108804697A (zh) * | 2018-06-15 | 2018-11-13 | 中国平安人寿保险股份有限公司 | 基于Spark的数据同步方法、装置、计算机设备和存储介质 |
CN110120889A (zh) * | 2019-05-06 | 2019-08-13 | 网易(杭州)网络有限公司 | 数据处理方法、设备及计算机存储介质 |
CN110602165A (zh) * | 2019-08-08 | 2019-12-20 | 数字广东网络建设有限公司 | 政务数据同步方法、装置、系统、计算机设备和存储介质 |
CN111752910A (zh) * | 2020-06-24 | 2020-10-09 | 上海微盟企业发展有限公司 | 一种异构平台的数据同步方法、系统和相关装置 |
CN111813550A (zh) * | 2020-07-08 | 2020-10-23 | 深圳市腾讯网域计算机网络有限公司 | 数据处理方法、装置、服务器和存储介质 |
Non-Patent Citations (1)
Title |
---|
石月春: "《水轮发电机组状态监测技术研究与实践》", 31 January 2017, pages: 64 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113204378A (zh) * | 2021-04-21 | 2021-08-03 | 深圳市广和通无线股份有限公司 | 配置文件状态同步方法、装置、终端、服务器和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112245906B (zh) | 2023-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102389235B1 (ko) | 리소스 배치 방법, 장치, 단말기 및 저장 매체 | |
CN109032793B (zh) | 资源配置的方法、装置、终端及存储介质 | |
US20220241686A1 (en) | Information processing method, system, apparatus, device, and storage medium | |
US11782756B2 (en) | Method and apparatus for scheduling processor core, and storage medium | |
CN109194972B (zh) | 直播流获取方法、装置、计算机设备及存储介质 | |
EP3230942A1 (en) | Multi-endpoint actionable notifications | |
CN110955499B (zh) | 处理器核心配置方法、装置、终端及存储介质 | |
CN110868607B (zh) | 直播游戏互动方法、装置、服务器及可读存储介质 | |
WO2022017007A1 (zh) | 音频数据处理方法、服务器及存储介质 | |
CN114237840A (zh) | 资源交互方法、装置、终端及存储介质 | |
CN115955590A (zh) | 视频处理方法、装置、计算机设备、介质 | |
CN106534877B (zh) | 一种发送媒体流的方法及装置 | |
CN113032160B (zh) | 一种数据同步的管理方法以及相关装置 | |
CN112245906B (zh) | 数据同步方法、装置、电子设备及存储介质 | |
CN116244231A (zh) | 一种数据传输方法、装置、系统、电子设备及存储介质 | |
CN113286349B (zh) | 个人热点连接方法、装置、终端及存储介质 | |
CN107395493B (zh) | 一种基于意图Intent分享消息的方法及装置 | |
CN114257631A (zh) | 数据交互方法、装置、设备及存储介质 | |
CN112230819B (zh) | 信息处理方法、信息处理装置、存储介质与电子设备 | |
CN112312151B (zh) | 一种数据更新方法、装置和存储介质 | |
JP7476327B2 (ja) | オーディオデータ処理方法、遅延時間取得方法、サーバ、及びコンピュータプログラム | |
CN112261099B (zh) | 位置信息获取方法、装置和电子设备 | |
CN117744077A (zh) | 应用程序处理方法、装置以及电子设备 | |
CN115878179A (zh) | 信息处理方法、装置、计算机设备及存储介质 | |
JP2024005711A (ja) | 情報処理装置及びプログラム |
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 |