CN109408224A - 数据同步方法、分布式系统与应用节点 - Google Patents
数据同步方法、分布式系统与应用节点 Download PDFInfo
- Publication number
- CN109408224A CN109408224A CN201811084187.2A CN201811084187A CN109408224A CN 109408224 A CN109408224 A CN 109408224A CN 201811084187 A CN201811084187 A CN 201811084187A CN 109408224 A CN109408224 A CN 109408224A
- Authority
- CN
- China
- Prior art keywords
- data
- application
- updated
- database
- application node
- 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.)
- Pending
Links
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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据同步方法、分布式系统与应用节点,其中,分布式系统还包括负载均衡器、数据库、集群管理节点、第一应用节点以及第二应用节点,该方法包括:各应用节点将数据库记录的应用数据加载至自身的内置存储空间;第一应用节点接收负载均衡器发送的客户端针对数据库的应用数据的数据更新请求;从而,第一应用节点根据数据更新请求更新数据库记录的应用数据,并通知集群管理节点记录数据库的状态为处于被更新状态;进而,各应用节点在监控到集群管理节点记录数据库的状态为处于被更新状态时,将处于被更新状态的数据库记录的应用数据更新至自身的内置存储空间,降低了分布式系统中请求数据过程中的时延,并提高了系统处理效率。
Description
技术领域
本申请涉及数据处理技术领域,特别涉及数据同步方法、分布式系统与应用节点。
背景技术
在分布式系统中,各个应用节点无差别的处理业务,相互之间无差别对等,这种无状态的应用节点很容易横向扩展以承载更多的业务流量。由于各应用节点无差别的处理业务请求且业务请求的分发具备随机性,因此,各应用节点之间的内存同步是该分布式系统数据正确性的保证。
现有技术中的分布式系统,应用节点用于无差别处理业务,数据库用于存储数据,当应应用节点接收到数据查询或处理请求后,需向数据库调取数据。但是,应用节点向数据库调取数据存在较长的网络延时,针对涉及数据处理的业务,可以采用为各应用节点分别设置外部挂载的缓存节点的方式来降低网络延时。从而,通过外部挂载的缓存节点同步数据库的数据,如此,在进行数据处理业务时,应用节点直接读取其对应的外部挂载的缓存节点中的数据即可。
现有的数据同步方法为各应用节点增加了额外的外挂式缓存节点,应用节点向其对应的外挂式缓存节点发起的读写请求受到网络带宽与并发读写请求数的限制,业务处理的时延问题仍然亟待解决。
发明内容
本申请提供了一种数据同步方法、分布式系统与应用节点,以期降低分布式系统中请求数据过程中的时延,提高系统处理效率。
第一方面,本申请提供了一种数据同步方法,应用于分布式系统,分布式系统还包括负载均衡器、数据库、集群管理节点、第一应用节点以及第二应用节点,该方法包括:第一应用节点将数据库记录的应用数据加载至第一应用节点的第一内置存储空间;第二应用节点将数据库记录的应用数据加载至第二应用节点的第二内置存储空间;第一应用节点接收负载均衡器发送的客户端针对数据库的应用数据的数据更新请求;从而,第一应用节点根据数据更新请求更新数据库记录的应用数据,并通知集群管理节点记录数据库的状态为处于被更新状态;进而,第一应用节点在监控到集群管理节点记录数据库的状态为处于被更新状态时,将处于被更新状态的数据库记录的应用数据更新至第一内置存储空间;第二应用节点在监控到集群管理节点记录数据库的状态为处于被更新状态时,将处于被更新状态的数据库记录的应用数据更新至第二内置存储空间。
通过本实施例提供的方案,可使各应用节点利用自身的内置存储空间同步存储数据库中的应用数据,从而,在涉及数据处理的业务时,能够直接访问本地的内置存储空间,而不用受到输入/输出(Input/Output,I/O)限制与网络时延的影响,提高低频写高频读场景下的访问性能。
在本申请一种实现方式中,若数据更新请求携带有待更新数据,第一应用节点根据数据更新请求更新数据库记录的应用数据,包括:第一应用节点将数据库记录的应用数据更新为待更新数据。
本申请中,第一应用节点可根据数据更新请求,直接对数据库中的数据进行更新,第一应用节点可对数据库直接进行写入处理,具有较高的灵活性。
在本申请另一种实现方式中,数据更新请求还携带有需更新的部分应用数据在数据库的位置,第一应用节点将数据库记录的应用数据更新为待更新数据,包括:第一应用节点将数据库的位置上的需更新的部分应用数据更新为待更新数据。
在该实现方式中,第一应用节点可有针对性的处理数据库中的数据,这对于第一应用节点而言,无需对整个数据库进行更新,也无需自身再去确定需要更新的数据的存储位置,简化了处理步骤,提高了处理效率,且这种处理方式更有针对性,使得更新后的数据能存储在数据更新请求指定的位置,方便后续调用或更新。
在本申请另一种实现方式中,该方法还包括:第一应用节点接收负载均衡器发送的客户端针对数据库的第一数据查询请求;第一应用节点在第一内置存储空间查询与第一数据查询请求匹配的应用数据,并将查询到的应用数据发送至客户端。
通过本实施例所提供的方案,第一应用节点可通过第一内置存储空间存储的数据直接反馈给客户端,无需调取数据库的数据,降低了反馈时延,提高了反馈效率。
在本申请另一种实现方式中,该方法还包括:第二应用节点接收负载均衡器发送的客户端针对数据库的第二数据查询请求;第二应用节点在第二内置存储空间查询与第二数据查询请求匹配的应用数据,并将查询到的应用数据发送至客户端。
通过本实施例所提供的方案,第二应用节点可通过第二内置存储空间存储的数据直接反馈给客户端,无需调取数据库的数据,降低了反馈时延,提高了反馈效率。
在本申请另一种实现方式中,分布式系统还包括数据节点,数据库设置于数据节点。
通过本实施例所提供的方案,进一步降低了分布式系统的系统架构复杂度,能够简化后期维护成本,提高分布式系统的鲁棒性。
第二方面,本申请提供了一种数据同步方法,应用于第一应用节点,第一应用节点设置于分布式系统中,分布式系统还包括负载均衡器、数据库、集群管理节点以及第二应用节点,数据库记录的应用数据分别加载至第一应用节点的第一内置存储空间和第二应用节点的第二内置存储空间,方法包括:第一应用节点将数据库记录的应用数据加载至第一内置存储空间;第一应用节点接收负载均衡器发送的客户端针对数据库的应用数据的数据更新请求;第一应用节点根据数据更新请求更新数据库记录的应用数据,并通知集群管理节点记录数据库的状态为处于被更新状态;第一应用节点在监控到集群管理节点记录数据库的状态为处于被更新状态时,将处于被更新状态的数据库记录的应用数据更新至第一内置存储空间。
通过本实施例提供的方案,可使第一应用节点在接收到数据更新请求时,对数据库所记录的应用数据进行更新,同时通过集群管理节点的通知机制,实现各应用节点所存储数据的同步更新。如此,各应用节点可利用自身的内置存储空间同步存储数据库中的应用数据,从而,在涉及数据处理的业务时,能够直接通访问本地的内置存储空间,而不用受到I/O限制与网络时延的影响,提高低频写高频读场景下的访问性能。
在本申请一种实现方式中,数据更新请求携带有待更新数据,第一应用节点根据数据更新请求更新数据库记录的应用数据,包括:第一应用节点将数据库记录的应用数据更新为待更新数据。
本申请中,第一应用节点可根据数据更新请求,直接对数据库中的数据进行更新,第一应用节点可对数据库直接进行写入处理,具有较高的灵活性。
在本申请另一种实现方式中,数据更新请求还携带有需更新的部分应用数据在数据库的位置,第一应用节点将数据库记录的应用数据更新为待更新数据,包括:第一应用节点将数据库的位置上的需更新的部分应用数据更新为待更新数据。
在该实现方式中,第一应用节点可有针对性的处理数据库中的数据,这对于第一应用节点而言,无需对整个数据库进行更新,也无需自身再去确定需要更新的数据的存储位置,简化了处理步骤,提高了处理效率,且这种处理方式更有针对性,使得更新后的数据能存储在数据更新请求指定的位置,方便后续调用或更新。
在本申请另一种实现方式中,该方法还包括:第一应用节点接收负载均衡器发送的客户端针对数据库的第一数据查询请求;第一应用节点在第一内置存储空间查询与第一数据查询请求匹配的应用数据,并将查询到的应用数据发送至客户端。
通过本实施例所提供的方案,第一应用节点可通过第一内置存储空间存储的数据直接反馈给客户端,无需调取数据库的数据,降低了反馈时延,提高了反馈效率。
在本申请另一种实现方式中,分布式系统还包括数据节点,数据库设置于数据节点。
通过本实施例所提供的方案,进一步降低了分布式系统的系统架构复杂度,能够简化后期维护成本,提高分布式系统的鲁棒性。
第三方面,本申请提供了一种数据同步方法,应用于第二应用节点,第二应用节点设置于分布式系统中,分布式系统还包括负载均衡器、数据库、以及集群管理节点,其中,数据库记录的应用数据加载至第二应用节点的内置存储空间,方法包括:第二应用节点监控集群管理节点记录的数据库的状态是否处于被更新状态;若是,第二应用节点将处于更新状态的数据库记录的应用数据更新至第二应用节点的内置存储空间。
通过本实施例提供的方案,可使第二应用节点在监控到集群管理节点记录的数据库的状态为处于被更新状态时,对数据库所记录的应用数据进行同步更新,如此,各应用节点可利用自身的内置存储空间同步存储数据库中的应用数据,从而,在涉及数据处理的业务时,能够直接访问本地的内置存储空间,而不用受到I/O限制与网络时延的影响,提高低频写高频读场景下的访问性能。
在本申请一种实现方式中,该方法还包括:第二应用节点接收负载均衡器发送的客户端针对数据库的数据查询请求;第二应用节点在第二应用节点的内置存储空间查询与数据查询请求匹配的应用数据,并将查询到的应用数据发送至客户端。
通过本实施例所提供的方案,第二应用节点可通过内置存储空间存储的数据直接反馈给客户端,无需调取数据库的数据,降低了反馈时延,提高了反馈效率。
在本申请另一种实现方式中,该方法还包括:第二应用节点接收负载均衡器发送的客户端针对数据库的应用数据的数据更新请求;第二应用节点根据数据更新请求更新数据库记录的应用数据,并通知集群管理节点记录数据库的状态为处于被更新状态。
本申请中,第二应用节点可根据数据更新请求,直接对数据库中的数据进行更新,第二应用节点可对数据库直接进行写入处理,具有较高的灵活性;此外,第二节点通知集群管理节点修改数据库的状态,由集群管理节点承担通知作用,能够方便各其他节点根据该状态实现数据更新与同步。
在本申请另一种实现方式中,分布式系统还包括数据节点,数据库设置于数据节点。
通过本实施例所提供的方案,进一步降低了分布式系统的系统架构复杂度,能够简化后期维护成本,提高分布式系统的鲁棒性。
第四方面,本申请提供了一种分布式系统,分布式系统包括:负载均衡器、数据库、集群管理节点、第一应用节点以及第二应用节点,其中,第一应用节点,用于将数据库记录的应用数据加载至第一应用节点的第一内置存储空间;第二应用节点,用于将数据库记录的应用数据加载至第二应用节点的第二内置存储空间;负载均衡器,用于接收客户端发送的针对数据库的应用数据的数据更新请求,并将数据更新请求发送至第一应用节点;第一应用节点,还用于根据数据更新请求更新数据库记录的应用数据,并通知集群管理节点记录数据库的状态为处于被更新状态;第一应用节点,还用于在监控到集群管理节点记录数据库的状态为处于被更新状态时,将处于被更新状态的数据库记录的应用数据更新至第一内置存储空间;第二应用节点,还用于在监控到集群管理节点记录数据库的状态为处于被更新状态时,将处于被更新状态的数据库记录的应用数据更新至第二内置存储空间
第四方面或第四方面任意一种实现方式是第一方面或第一方面任意一种实现方式对应的装置实现,第一方面或第一方面任意一种实现方式中的描述适用于第四方面或第四方面任意一种实现方式,在此不再赘述。
第五方面,本申请提供了一种应用节点,该应用节点设置有内置存储空间,该应用节点包括:加载模块,用于将数据库记录的应用数据加载至内置存储空间;接收模块,用于接收负载均衡器发送的客户端针对数据库的应用数据的数据更新请求;更新模块,用于根据数据更新请求更新数据库记录的应用数据,并通知集群管理节点记录数据库的状态为处于被更新状态;监控模块,用于在监控到集群管理节点记录数据库的状态为处于被更新状态时,将处于被更新状态的数据库记录的应用数据更新至内置存储空间。
第五方面或第五方面任意一种实现方式是第二方面或第二方面任意一种实现方式对应的装置实现,第二方面或第二方面任意一种实现方式中的描述适用于第五方面或第五方面任意一种实现方式,在此不再赘述。
第六方面,本申请提供了一种应用节点,该应用节点设置有内置存储空间,该应用节点包括:监控模块,用于监控集群管理节点记录的数据库的状态是否处于被更新状态;更新模块,若是,用于将处于更新状态的数据库记录的应用数据更新至第二应用节点的内置存储空间。
第六方面或第六方面任意一种实现方式是第三方面或第三方面任意一种实现方式对应的装置实现,第三方面或第三方面任意一种实现方式中的描述适用于第六方面或第六方面任意一种实现方式,在此不再赘述。
第七方面,本申请提供一种应用节点,包括:处理器和存储器,存储器存储有应用程序,处理器运行应用程序以第二方面和/或第三方面任一项的数据同步方法。
第八方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如第二方面和/或第三方面任一项的数据同步方法。
第九方面,本申请提供一种计算机程序,当计算机程序被计算机执行时,用于执行第二方面和/或第三方面任一项的数据同步方法。
在一种可能的设计中,第九方面中的程序可以全部或者部分存储在与处理器封装在一起的存储介质上,也可以部分或者全部存储在不与处理器封装在一起的存储器上。
可见,在以上各个方面,通过将缓存的功能上移至应用节点,由各应用节点中设置的内置存储空间与数据库同步更新数据,从而,在涉及数据处理的业务时,能够直接访问本地的内置存储空间,而不用受到I/O限制与网络时延的影响,提高低频写高频读场景下的访问性能。并且,相较于设置外挂式缓存节点的方式,本申请提供的技术方案能够减少分布式系统中外部缓存的部署,极大的简化后期维护成本,提高系统的鲁棒性,因此,本申请提供的技术方案能够降低分布式系统中请求数据过程中的时延,提高系统处理效率。
附图说明
图1为本申请提供的一种分布式系统的架构示意图;
图2为本申请提供的一种数据同步方法的交互流程示意图;
图3为本申请提供的另一种数据同步方法的交互流程示意图;
图4为本申请提供的另一种数据同步方法的交互流程示意图;
图5为本申请提供的另一种分布式系统的架构示意图;
图6为本申请提供的一种应用节点的功能方块图;
图7为本申请提供的一种应用节点的实体架构示意图;
图8为本申请提供的另一种应用节点的功能方块图;
图9为本申请提供的另一种应用节点的实体架构示意图。
具体实施方式
本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。
本申请实施例可应用于分布式系统。
分布式存储系统一般由负载均衡器(Load Balance,LB)、数据库(Data Base,DB)与多个应用节点(Application nodes,API)构成。其中,数据库用于存储业务数据,而该分布式系统中的多个应用节点之间为无差别对等的节点,这些应用节点并不用以存储业务数据,非常容易扩展以承载更多的业务流量。并且,负载均衡器设置于多个应用节点的前端入口数,用于均匀分发访问请求,从而,使得各应用节点可以无差别的处理请求。其中,访问请求包括:针对数据库的查询请求与针对数据的更新请求中的至少一种。
现有的分布式系统在涉及数据处理的场景中,无论是直接调取数据库的数据,还是通过外挂式缓存节点来调取数据,都受到网络时延的限制,导致分布式系统的数据处理效率较低,可能无法满足高频查询校验后低延时的场景。因此,如何解决现有的分布式系统中的时延问题,并保证无状态节点的内存同步,是本领域亟待解决的技术问题。
基于此,本申请提供的数据同步方法,旨在解决现有技术的如上技术问题,并提出如下解决思路:在分布式系统的各应用节点中设置内置存储空间,该内置存储空间的数据与数据库数据同步,以便于在处理涉及数据处理的业务时,能够在自身的内置存储空间直接调取数据,降低网络时延,通过处理效率。
下面以具体地实施例对本发明的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
首先,为了便于理解,本申请实施例给出一种分布式系统的架构示意图,请参考图1,该分布式系统100包括:负载均衡器11、数据库12、集群管理节点(Configuration ServerCluster)13、第一应用节点14与第二应用节点15。并且,第一应用节点14中设置有第一内置存储空间,第二应用节点15中设置有第二内置存储空间。其中,图1中的省略号表示该分布式系统中还可以具备其他一个或多个应用节点。
在图1所示分布式系统100中,负载均衡器11用于均匀分发访问请求,从而,使得各应用节点可以无差别的处理请求。其中,访问请求包括:针对数据库的查询请求与针对数据的更新请求中的至少一种。如图1所示,负载均衡器11可以通过网络与外部的客户端200进行通信以及数据交互。例如,负载均衡器11可通过网络接收客户端200发送的数据查询请求,并将该数据查询请求发送给第一应用节点14进行处理。
数据库12在该分布式系统100中作为持久化的数据库,用于存储所有数据。由此,所有数据更新请求、数据加载请求最终都会在数据库中完成。
而集群管理节点13在该分布式系统100中作为配置中心,接收来自应用节点的配置下发请求,并记录数据库的状态,从而,在应用节点检测到集群管理节点13记录的状态为被更新状态时,去数据库请求加载被更新的数据至自身的内置存储空间。其中,集群管理节点13可以表征的数据库的状态可以包括但不限于:被更新状态,该状态说明数据库中的数据发生更新。
第一应用节点14与第二应用节点15为无状态节点,二者在该分布式系统中无差别对等,其中,无差别对等是指由负载均衡器11将来自分布式系统外部的针对数据库12的一个或多个访问请求发送至任一应用节点进行处理,其中,负载均衡器11根据各应用节点的负载情况将访问请求的发送至负载较低的应用节点,任一应用节点均可对数据库12进行访问,并将访问结果发送至客户端。该分布式系统100中的应用节点负责接收客户端发送的更新请求,并且负责将更新请求携带的数据发送至数据库12,以修改数据库12,如果发送成功,则将此次同步至集群管理节点13。
在另外一些示例中,负载均衡器11可根据哈希一致性算法将访问请求发送至对应的的应用节点。
需要说明的是,本申请实施例中,“第一”、“第二”仅用以对应用节点在数据同步过程中承担的角色进行区分,第一应用节点作为主动更新数据库的应用节点,而第二应用节点作为被动的应用节点,是在数据库的状态处于被更新状态时才会执行数据同步更新的节点。
需要注意的是,在不同的数据同步过程中,第一应用节点与第二应用节点的可以在各应用节点之间变换。例如,在一个数据同步场景中,应用节点A作为接收到数据同步请求的应用节点,为第一应用节点,主动对数据库的记录的数据进行更新,应用节点B作为第二应用节点,在数据库的状态处于被更新状态时才会执行数据同步。反之,在另一个数据同步场景中,应用节点B作为接收到数据同步请求的应用节点,为第一应用节点,主动对数据库的记录的数据进行更新,应用节点A作为第二应用节点,在数据库的状态处于被更新状态时才会执行数据同步。
并且,在该分布式系统100中,第一应用节点14的数目与第二应用节点15的数目可以有多个,图1所示的分布式系统中所包含的第一应用节点14与第二应用节点15的数量和类型仅仅是一种举例,本申请实施例并不限制于此。
如图1所示的分布式系统100中,应用节点具备缓存能力,也就是,在各应用节点中设置有内置存储空间。其中,内置存储空间的表现形式可以包括但不限于:缓存(cache)或者内存。
由于内置存储空间的存在,使得应用节点在处理与数据相关的业务时,能够直接读取自身内置存储空间中缓存的数据,这中读取方式既没有I/O时延,也没有网络时延,也不会受到并发请求数目的瓶颈限制,能够提高低频写高频读场景下的访问性能。
本申请实施例中,“多个”是指两个或两个以上,其它量词与之类似。“和/或”,描述关联对象的对应关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
以下,将结合图1所示分布式系统100,对本申请提供的一种数据同步方法进行具体说明。请参考图2,该数据同步方法可包括如下步骤:
S201,第一应用节点14将数据库12记录的应用数据加载至第一应用节点14的第一内置存储空间。
S202,第二应用节点15将数据库12记录的应用数据加载至第二应用节点15的第二内置存储空间。
S203,客户端200发送针对数据库的应用数据的数据更新请求至分布式系统100的负载均衡器11。
S204,负载均衡器11将接收到的数据更新请求转发给第一应用节点14。
S205,第一应用节点14接收负载均衡器11发送的客户端针对数据库12的应用数据的数据更新请求。
S206,第一应用节点14根据数据更新请求更新数据库12记录的应用数据。
S207,第一应用节点14通知集群管理节点13记录数据库12的状态为处于被更新状态。
S208,第一应用节点14监控集群管理节点13记录的数据库12的状态。
S209,第二应用节点15监控集群管理节点13记录的数据库12的状态。
S210,第一应用节点14在监控到集群管理节点13记录数据库12的状态为处于被更新状态时,将处于被更新状态的数据库12记录的应用数据更新至第一应用节点14的第一内置存储空间。
S211,第二应用节点15在监控到集群管理节点13记录数据库12的状态为处于被更新状态时,将处于被更新状态的数据库12记录的应用数据更新至第二应用节点15的第二内置存储空间。
如上所述,本申请实施例中,第一应用节点14与第二应用节点15为无差别对等的节点,因此,本申请实施例对于第一应用节点14与第二应用节点15执行相同步骤时的实现顺序无特别限定,在具体实现时,可以同时执行,或者,也可根据预设次序顺序执行。例如,S201与S202可同时执行,或者,可先执行S201再执行S202,或者,先执行S202再执行S201。此外,S208与S209、S210与S211也是同一情况,不再赘述。
本申请实施例中,由于每个应用节点都具备内置存储空间,因此,在业务处理的过程中,为了保证应用节点的内置存储空间存储的数据与数据库12存储的数据保持一致,以便于各应用节点可以无差别的处理业务,因此,执行S201和S202。
在具体的实现场景中,S201和S202步骤中所涉及的“数据库12记录的应用数据”可以是数据库12中所记录存储的全部数据。
在另一在具体的实现场景中,S201和S202步骤中所涉及的“数据库12记录的应用数据”可以是数据库12中所记录存储的全部数据中,与应用节点需要处理的业务相关的应用数据。其中,应用节点需要处理的业务,可以包括但不限于以下至少一种:应用节点当前正在处理的业务、应用节点需要处理的接下来一个或多个业务。
此外,在具体实现场景中,各应用节点,包括第一应用节点14与第二应用节点15,自数据库12中加载至自身的内置存储空间的应用数据可以相同,或者,也可以不同。须知,由于各应用节点需无差别的处理业务,各应用节点加载至自身内置存储空间的数据需包含应用节点需要处理的业务数据。在一个优选的实现场景中,第一应用节点14与第二应用节点15加载至自身内置存储空间的应用数据相同,这能够简化各应用节点的控制策略,降低系统的复杂度。
例如,数据库12存储有业务A、业务B与业务C的应用数据,并且,第一应用节点14与第二应用节点15当前在无差别的处理业务A,则此时,在执行S201和S202时,第一应用节点14可将数据库12中存储的业务A的应用数据(部分数据)加载到第一内置存储空间,第二应用节点15可以将数据库12中存储的业务A、业务B与业务C的应用数据(全部数据)加载到第二内置存储空间。
而在具体加载数据库12记录的应用数据至自身的内置存储空间时,应用节点可以通过向数据库12发送数据加载请求的方式实现。
具体的,请参考图3,一方面,S201步骤包括:
S2011,第一应用节点14向数据库12发送数据加载请求,该数据加载请求用以请求加载数据库12记录的应用数据。
S2012,数据库12根据数据加载请求,将第一应用节点14请求的应用数据发送给第一应用节点14。
S2013,第一应用节点14将数据库12发送的应用数据存储到第一内置存储空间。
仍如图5所示,另一方面,S201B步骤包括:
S2021,第二应用节点15向数据库12发送数据加载请求,该数据加载请求用以请求加载数据库12记录的应用数据。
S2022,数据库12根据数据加载请求,将第二应用节点15请求的应用数据发送给第二应用节点15。
S2023,第二应用节点15将数据库12发送的应用数据存储到第二内置存储空间。
此外,本申请实施例中,S201与S202的触发条件可以包括但不限于:应用节点自身的内置存储空间未存储与业务相关的业务数据。举例而言,应用节点可以在启动时执行该些步骤。
举例说明,若任一应用节点自身的内置存储空间未存储与业务相关的业务数据,则此时,该应用节点自身存储的数据无法满足该第一应用节点14处理业务的需求,并且,当涉及数据处理的业务时,该应用节点仍需向数据库12调用数据,存在I/O时延问题,基于此,在该应用节点初次被启用时,执行上述数据加载步骤。
具体的,应用节点自身的内置存储空间未存储与业务相关的业务数据,还可以包括但不限于以下两种情况:
第一种,应用节点初次被使用时。此时,应用节点的内置存储空间也处于初始状态,可能未存储数据,内置存储空间为空。
第二种,应用节点的内置存储空间存储有部分数据,但未存储与所需要处理的业务相关的应用数据。
本申请实施例中由于各应用节点中均设置有内置存储空间,而在分布式系统中,各应用节点无差别的处理业务,因此,需要保证各应用节点的内存是同步的,因此,当第一应用节点14接收到客户端针对数据库12中应用数据的数据更新请求时,需要根据该数据更新请求,更新数据库12所记录的应用数据,以及,通知该分布式系统中的集群管理节点13,以便于集群管理节点13能够将数据库12的状态修改为被更新状态。
本申请实施例中,各应用节点可以根据数据更新请求,在数据库12中写入数据。
如此,若第一应用节点14接收到的数据更新请求中携带有待更新数据,则第一应用节点14在执行S206中更新数据库12这一步骤时,可以将数据库12中记录的应用数据更新为该待更新数据即可。
其中,若待更新数据为数据库12中记录的全部数据,则直接执行上述更新替换的步骤即可;或者,若待更新数据为数据库12中记录的部分数据,则还需要进一步确认待更新数据的位置。
在一个具体的实现过程中,若待更新数据为数据库12中记录的部分数据,则可以将该待更新数据存储在数据库12中任意位置或预先指定的位置,此时,可不对数据库12中原先存储的数据做其他处理,也即,仅将待更新数据存储入数据库12即可。
在另一个具体的实现过程中,若待更新数据为数据库12中记录的部分数据,则可以通过确定该待更新数据的标识信息,其中,标识信息可以包括但不限于:类型信息,类型信息可以包括但不限于:数据类型和/或业务类型,从而,根据待更新数据的标识信息,确定与该待更新数据对应的数据库12中记录的待替换数据,进而,将该待替换数据替换为该待更新数据,完成数据更新。
此外,在一些应用场景中,第一应用节点14接收到的数据更新请求可能还携带有需更新的部分应用数据在所述数据库12的位置,那么,第一应用节点14在执行S206中更新数据库12这一步骤时,将该数据库12的位置上的所需更新的部分数据更新为待更新数据即可。
此外,在一个特殊的实现场景中,第一应用节点14接收到的数据更新请求中可能未携带待更新数据以及需更新的部分应用数据在所述数据库12的位置,此时,第一应用节点14可根据给数据更新请求所指示的操作,对数据库12中记录的应用数据进行操作。
例如,若第一应用节点14接收到的数据更新请求为对业务A的应用数据做删除处理,该数据更新请求未携带待更新数据,此时,则第一应用节点14可根据该数据更新请求删除业务A的应用数据即可。
或者,又例如,若第一应用节点14接收到的数据更新请求为增加业务C的应用数据,且业务C的应用数据与业务A的应用数据完全相同,则此时,第一应用节点14可以复制业务A的应用数据,并为复制后的数据添加业务C的标识,并将该数据作为业务C的应用数据存储在数据库12中。
第一应用节点14除需要更新数据库12中记录的数据之外,还需要通知集群管理节点13记录数据库12的状态为处于被更新状态。而在分布式系统中,每个应用节点都在启动后监控集群管理节点13记录的数据库12的状态信息。如此,当该分布式系统中的任意应用节点,包括:第一应用节点14与第二应用节点15,监控到集群管理节点13记录的数据库12的状态为处于被更新状态时,可以执行S210与S211所述的更新同步步骤。
在一个优选的实现过程中,S206步骤执行时,第一应用节点14可先执行根据数据更新请求更新数据库12中记录的应用数据的步骤,在该数据更新步骤完成后(一些可能的场景中,为待更新数据下发至数据库12完成后),再执行通知集群管理节点13的步骤。这种实现方式可以保证集群管理节点13的状态是真实的,避免了提前通知集群管理节点13但数据更新失败的情况下导致的集群管理节点13记录的状态不准确的问题,从而,也避免了在集群管理节点13记录的数据库12状态不准确的情况下各应用节点更新同步数据导致的资源浪费情况。
可知,上述为一个优选的实现过程,在实际实现S206步骤时,本申请实施例对此无特别限定,S206步骤与S207步骤可以还可以同时执行,这可以在一定程度上提高处理效率;此外,还可以先执行S207再执行S206。
基于集群管理节点13中记录的数据库12的状态为处于被更新状态,此时,各应用节点基于该数据库12的状态,向数据库12请求更新同步数据即可。其实现方式,可以参考图3,包括如下步骤:
一方面,S210步骤包括:
S2101,第一应用节点14向数据库12发送数据同步请求,该数据同步请求用以请求同步更新数据库12更新的数据。
其中,数据库12更新的数据可以包括但不限于:数据库12中的全部数据,或者,S203步骤中第一应用节点14对数据库12进行更新时的待更新数据;或者,数据库12中包含待更新数据的部分数据。
S2102,数据库12根据数据同步请求,将第一应用节点14请求的应用数据发送给第一应用节点14。
S2103,第一应用节点14将数据库12发送的应用数据存储到第一内置存储空间。
仍如图3所示,另一方面,S211步骤包括:
S2111,第二应用节点15向数据库12发送数据同步请求,该数据更新请求用以请求同步更新数据库12更新的数据。
其中,数据库12更新的数据可以包括但不限于:数据库12中的全部数据,或者,S203步骤中第一应用节点14对数据库12进行更新时的待更新数据;或者,数据库12中包含待更新数据的部分数据。
S2112,数据库12根据数据同步请求,将第二应用节点15请求的应用数据发送给第二应用节点15。
S2113,第二应用节点15将数据库12发送的应用数据存储到第二内置存储空间。
如上所述,数据同步请求与前述数据加载请求所请求的数据可以相同,为数据库12中记录的全部数据;或者,二者可以不同。
此外,在一个可行的实现场景中,第一应用节点14在执行S205接收到数据更新请求后,还可以对自身的第一内置存储空间记录的应用数据进行更新。例如,若第一应用节点14在S205中所接收到的数据更新请求携带有被更新数据时,除执行S206外,还可提前将该待更新数据更新至自身的第一内置存储空间,此时,在图3所示流程中,则无需再次执行S101-S2103步骤,可节省操作步骤,降低资源占用。
在另一个可行的实现场景中,若第一应用节点14在S207中除通知集群管理节点13记录数据库12的状态之外,还可以通知集群管理节点13记录数据库12此次更新的发起者信息。则此时,第一应用节点14在执行S210时,根据发起者信息确定数据库12此次更新的发起者为自身,且自身已经在接收到数据更新请求时,已经对自身的第一内置存储空间的数据进行了更新,则此时,无需再次执行针对第一内置存储空间的更新操作。当然,为避免数据不一致,重新执行该S210步骤亦可。其中,第一应用节点14通知集群管理节点13发起者信息时,可以与通知其记录数据库12的状态的通知消息一起发送,或者,也可以分开成两个不同的通知消息发送,本申请实施例对此也无特别限定。
此外,在另一个可行的实现场景中,若第一应用节点14接收到的数据更新请求中携带有待更新数据以及需更新的部分应用数据在所述数据库12的位置时,第一应用节点14在S207中除通知集群管理节点13记录数据库12的状态之外,还可以通知集群管理节点13该位置信息。同上,该位置信息的通知消息可以与通知其记录数据库12的状态的通知消息一起发送,或者,也可以分开成两个不同的通知消息发送,本申请实施例对此也无特别限定。在此场景下,各应用节点接收到该通知消息后,即可在向数据库12请求同步更新该位置所存储的应用数据。
此外,在另一个可行的实现场景中,若第一应用节点14接收到的数据更新请求中携带有待更新数据,第一应用节点14在S207中除通知集群管理节点13记录数据库12的状态之外,还可以通知集群管理节点13该待更新数据的标识信息,包括:数据类型和/或业务类型。同上,该标识信息的通知消息可以与通知其记录数据库12的状态的通知消息一起发送,或者,也可以分开成两个不同的通知消息发送,本申请实施例对此也无特别限定。在此场景下,各应用节点接收到该通知消息后,即可在向数据库12请求同步更新该标识信息所对应的应用数据。
通过以上步骤,能够实现各应用节点的内置存储空间存储的数据与数据库12存储的数据同步,保证了该分布式系统内各应用节点可以无差别的处理业务数据。
基于此,当任一应用节点接收到数据查询请求时,可以直接在自身的内置存储空间查询与该数据查询请求相匹配的应用数据,并将查询到的应用数据反馈给数据查询请求的发送端。
为了便于理解,请参考图4,在该数据同步方法中,还包括如下步骤:
S212,客户端200发送针对数据库12的第一数据查询请求至分布式系统100的负载均衡器11。
S213,负载均衡器11将接收到的第一数据查询请求转发给第一应用节点14。
S214,第一应用节点14接收负载均衡器11发送的第一数据查询请求。
S215,第一应用节点14在第一内置存储空间查询与第一数据查询请求匹配的应用数据。
S216,第一应用节点14将查询到的与应用数据相匹配的应用数据发送给负载均衡器11。
S217,负载均衡器11将接收到的与第一数据查询请求相匹配的应用数据转发给客户端200。
另一方面,在另一实现场景中,如图4所示,该方法还可以包括:
S218,客户端200发送针对数据库12的第二数据查询请求至分布式系统100的负载均衡器11。
S219,负载均衡器11将接收到的第二数据查询请求转发给第二应用节点15。
S220,第二应用节点15接收负载均衡器11发送的第二数据查询请求。
S221,第二应用节点15在第二内置存储空间查询与第二数据查询请求匹配的应用数据。
S222,第二应用节点15将查询到的与应用数据相匹配的应用数据发送给负载均衡器11。
S223,负载均衡器11将接收到的与第二数据查询请求相匹配的应用数据转发给客户端200。
如此,当接收到涉及的数据处理的业务时,各应用节点无需再向数据库12调取数据,或设置外挂式缓存节点,可以直接通过自身的内置存储空间,完成数据处理业务。
本申请中,图4所示的S212-S217步骤、S218-S223步骤可在同一实现场景中完成,或者,也可以在不同的实现场景中实现。
优选的,本申请实施例所涉及的集群管理节点13可以为轻量级配置节点,以降低该集群管理节点13对于分布式系统100的系统架构复杂程度的影响。
此外,需要说明的是,本申请实施例所提供的数据同步方法,还适用于如图5所示的分布式系统,该分布式系统100包括:负载均衡器11、数据库12、第一应用节点14与第二应用节点15,此时,在执行上述数据同步流程时,可由第一应用节点14承担数据库12状态处于被更新状态的通知作用,或者,可由数据库12直接承担自身状态处于被更新状态的通知作用。
也就是,当第一应用节点14接收到负载均衡器11发送的客户端针对所述数据库12的应用数据的数据更新请求后,第一应用节点14根据该数据更新请求更新数据库12记录的应用数据,此外,第一应用节点14还向其他应用节点发送通知消息,以通知其他应用节点数据库12的状态为被更新状态。
或者,当第一应用节点14根据数据更新请求更新数据库12记录的应用数据后,数据库12将自身处于被更新状态的通知消息发送给各应用节点。
这种实现方式,由于未在分布式系统中增加其他节点,能够简化分布式系统的部署架构,极大的简化后期维护成本,提高系统的鲁棒性。
此外,本申请实施例中,数据库12除如图1、图5所示方式单独设置之外,还可以有如下设置方式:分布式系统还包括数据节点,所述数据库12设置于所述数据节点。
也就是说,数据库12可以集成设置于任意一个或多个应该用节点上。由于各应用节点中均设置有内置存储空间,因此,可将其中任意一个或多个应用节点的内置存储空间作为数据库12,用以存储全部应用数据。此时,需要注意的是,用以作为数据库12的内置存储空间所在的应用节点,与其他应用节点中存储的数据可能会不同,这取决于前述数据同步过程中,各应用节点向数据库12请求同步或加载的数据是否相同。
可以理解的是,上述实施例中的部分或全部步骤骤或操作仅是示例,本申请实施例还可以执行其它操作或者各种操作的变形。此外,各个步骤可以按照上述实施例呈现的不同的顺序来执行,并且有可能并非要执行上述实施例中的全部操作。
基于本申请实施例上述提出的数据同步方法,本申请实施例还提供了一种分布式系统,请参考图1,该分布式系统100包括:负载均衡器11、数据库12、集群管理节点13、第一应用节点14以及第二应用节点15,其中,
第一应用节点14,用于将数据库12记录的应用数据加载至第一应用节点14的第一内置存储空间;
第二应用节点15,用于将数据库12记录的应用数据加载至第二应用节点15的第二内置存储空间;
负载均衡器11,用于接收客户端发送的针对数据库12的应用数据的数据更新请求,并将数据更新请求发送至第一应用节点14;
第一应用节点14,还用于根据数据更新请求更新数据库12记录的应用数据,并通知集群管理节点13记录数据库12的状态为处于被更新状态;
第一应用节点14,还用于在监控到集群管理节点13记录数据库12的状态为处于被更新状态时,将处于被更新状态的数据库12记录的应用数据更新至第一内置存储空间;
第二应用节点15,还用于在监控到集群管理节点13记录数据库12的状态为处于被更新状态时,将处于被更新状态的数据库12记录的应用数据更新至第二内置存储空间。
在一个实现场景中,若数据更新请求携带有待更新数据,第一应用节点14,具体用于将数据库12记录的应用数据更新为待更新数据。
进一步的,若数据更新请求还携带有需更新的部分应用数据在数据库12的位置,第一应用节点14,具体用于将数据库12的位置上的需更新的部分应用数据更新为待更新数据。
此外,本申请实施例中,第一应用节点14,还用于接收负载均衡器11发送的客户端针对数据库12的第一数据查询请求;
第一应用节点14,还用于在第一内置存储空间查询与第一数据查询请求匹配的应用数据,并将查询到的应用数据发送至客户端。
此外,第二应用节点15,还用于接收负载均衡器11发送的客户端针对数据库12的第二数据查询请求;
第二应用节点15,还用于在第二内置存储空间查询与第二数据查询请求匹配的应用数据,并将查询到的应用数据发送至客户端。
在一个可行的实现场景中,分布式系统还包括数据节点,数据库12设置于数据节点。
基于本申请实施例所提供的数据同步方法,本申请实施例还提供了另一种分布式系统,详见图5所示,该分布式系统100包括:负载均衡器11、数据库12、第一应用节点14与第二应用节点15。
在一种图5所示系统的实现场景中,当第一应用节点14接收到负载均衡器11发送的客户端针对所述数据库12的应用数据的数据更新请求后,第一应用节点14,还用于根据该数据更新请求更新数据库12记录的应用数据,此外,第一应用节点14还用于向其他应用节点发送通知消息,以通知其他应用节点数据库12的状态为被更新状态。
或者,在另一种图5所示系统的实现场景中,当第一应用节点14根据数据更新请求更新数据库12记录的应用数据后,数据库12用于:将自身处于被更新状态的通知消息发送给各应用节点。
本申请实施例还提供了一种应用节点(第一应用节点14),请参考图6,该应用节点600设置有内置存储空间,该应用节点600包括:
加载模块61,用于将数据库12记录的应用数据加载至自身的内置存储空间;
接收模块62,用于接收负载均衡器11发送的客户端针对数据库12的应用数据的数据更新请求;
更新模块63,用于根据数据更新请求更新数据库12记录的应用数据,并通知集群管理节点13记录数据库12的状态为处于被更新状态;
监控模块64,用于在监控到集群管理节点13记录数据库12的状态为处于被更新状态时,将处于被更新状态的数据库12记录的应用数据更新至内置存储空间。
在一个实现过程中,若数据更新请求携带有待更新数据,则更新模块63,具体用于将数据库12记录的应用数据更新为待更新数据。
进一步的,若数据更新请求还携带有需更新的部分应用数据在数据库12的位置,更新模块63,还可具体用于将数据库12的位置上的需更新的部分应用数据更新为待更新数据。
此外,该应用节点600还可以包括查询模块(图6未示出),此时,
接收模块62,还用于接收负载均衡器11发送的客户端针对数据库12的第一数据查询请求;
该查询模块,用于在内置存储空间查询与第一数据查询请求匹配的应用数据,并将查询到的应用数据发送至客户端。
此外,本申请实施例还提供了一种应用节点,请参考图7,该应用节点700包括:处理器720和存储器710,存储器710存储有应用程序,处理器720运行应用程序以执行上文中第一应用节点14执行的方法。
此外,如图7所示,该应用节点700还包括:收发器730,该收发器730用于与外部装置进行通信或数据传输。
本申请实施例还提供了一种应用节点(第二应用节点15),请参考图8,该应用节点800设置有内置存储空间,该应用节点800包括:
监控模块81,用于监控所述集群管理节点13记录的所述数据库12的状态是否处于被更新状态;
更新模块82,若是,用于将处于更新状态的所述数据库12记录的应用数据更新至内置存储空间。
此外,该应用节点800还可以包括如下模块:
接收模块83,用于接收所述负载均衡器11发送的客户端针对所述数据库12的数据查询请求;
查询反馈模块84,用于在第二内置存储空间查询与所述数据查询请求匹配的应用数据,并将查询到的所述应用数据发送至所述客户端。
此外,在另一实现场景中,接收模块83,还用于接收所述负载均衡器11发送的客户端针对所述数据库12的应用数据的数据更新请求;
此时,更新模块82,还用于根据所述数据更新请求更新所述数据库12记录的应用数据,并通知所述集群管理节点13记录所述数据库12的状态为处于被更新状态。
本申请实施例还提供了一种应用节点,请参考图9,该应用节点900包括:处理器920和存储器910,存储器910存储有应用程序,处理器920运行应用程序以执行上文中第二应用节点15侧执行的方法。
此外,如图9所示,该应用节点900还包括:收发器930,该收发器930用于与外部装置进行通信或数据传输。
本申请中描述的处理器和收发器可实现在集成电路(integrated circuit,IC)、模拟IC、射频集成电路RFIC、混合信号IC、专用集成电路(application specificintegrated circuit,ASIC)、印刷电路板(printed circuit board,PCB)、电子设备等上。该处理器和收发器也可以用各种1C工艺技术来制造,例如互补金属氧化物半导体(complementary metal oxide semiconductor,CMOS)、N型金属氧化物半导体(nMetal-oxide-semiconductor,NMOS)、P型金属氧化物半导体(positive channel metal oxidesemiconductor,PMOS)、双极结型晶体管(Bipolar Junction Transistor,BJT)、双极CMOS(BiCMOS)、硅锗(SiGe)、砷化镓(GaAs)等。
应理解以上图6、图8所示通信装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块以软件通过处理元件调用的形式实现,部分模块通过硬件的形式实现。例如,更新模块可以为单独设立的处理元件,也可以集成在通信装置,例如基站的某一个芯片中实现,此外,也可以以程序的形式存储于通信装置的存储器中,由通信装置的某一个处理元件调用并执行以上各个模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,ASIC),或,一个或多个微处理器(digital singnal processor,DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,FPGA)等。再如,当以上某个模块通过处理元件调度程序的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central ProcessingUnit,CPU)或其它可以调用程序的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,SOC)的形式实现。
本申请实施例所提供的上述分布式系统可以设置于通信装置中。
可选的,通信装置可以是独立的设备或者可以是较大设备的一部分。例如所述设备可以是:
(1)独立的集成电路IC,或芯片,或,芯片系统或子系统;
(2)具有一个或多个IC的集合,可选地,该IC集合也可以包括用于存储数据和/或指令的存储部件;
(3)ASIC,例如调制解调器(MSM);
(4)可嵌入在其他设备内的模块;
(5)接收机、终端、蜂窝电话、无线设备、手持机、移动单元,网络设备等等;
(6)其他等等。
不管采用何种方式,总之,以上通信装置包括至少一个处理元件,存储元件和通信接口,其中至少一个处理元件用于执行以上方法实施例所提供的方法。处理元件可以以第一种方式:即执行存储元件存储的程序的方式执行以上方法实施例中的部分或全部步骤;也可以以第二种方式:即通过处理元件中的硬件的集成逻辑电路结合指令的方式执行以上方法实施例中的部分或全部步骤;当然,也可以结合第一种方式和第二种方式执行以上方法实施例提供的方法。
这里的处理元件同以上描述,可以是通用处理器,例如中央处理器(CentralProcessing Unit,CPU),还可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,ASIC),或,一个或多个微处理器(digital singnal processor,DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,FPGA)等。存储元件可以是一个存储器,也可以是多个存储元件的统称。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述实施例所述的数据同步方法。
此外,本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,当其在计算机上运行时,使得计算机执行上述实施例所述的数据同步方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid StateDisk)等。
Claims (22)
1.一种数据同步方法,其特征在于,应用于分布式系统,所述分布式系统还包括负载均衡器、数据库、集群管理节点、第一应用节点以及第二应用节点,所述方法包括:
所述第一应用节点将所述数据库记录的应用数据加载至所述第一应用节点的第一内置存储空间;
所述第二应用节点将所述数据库记录的应用数据加载至所述第二应用节点的第二内置存储空间;
所述第一应用节点接收所述负载均衡器发送的客户端针对所述数据库的应用数据的数据更新请求;
所述第一应用节点根据所述数据更新请求更新所述数据库记录的应用数据,并通知所述集群管理节点记录所述数据库的状态为处于被更新状态;
所述第一应用节点在监控到所述集群管理节点记录所述数据库的状态为处于被更新状态时,将处于被更新状态的所述数据库记录的应用数据更新至所述第一内置存储空间;
所述第二应用节点在监控到所述集群管理节点记录所述数据库的状态为处于被更新状态时,将处于被更新状态的所述数据库记录的应用数据更新至所述第二内置存储空间。
2.根据权利要求1所述的方法,其特征在于,所述数据更新请求携带有待更新数据,所述第一应用节点根据所述数据更新请求更新所述数据库记录的应用数据,包括:
所述第一应用节点将所述数据库记录的应用数据更新为所述待更新数据。
3.根据权利要求2所述的方法,其特征在于,所述数据更新请求还携带有需更新的部分应用数据在所述数据库的位置,所述第一应用节点将所述数据库记录的应用数据更新为所述待更新数据,包括:
所述第一应用节点将所述数据库的位置上的所述需更新的部分应用数据更新为所述待更新数据。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
所述第一应用节点接收所述负载均衡器发送的客户端针对所述数据库的第一数据查询请求;
所述第一应用节点在所述第一内置存储空间查询与所述第一数据查询请求匹配的应用数据,并将查询到的所述应用数据发送至所述客户端。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
所述第二应用节点接收所述负载均衡器发送的客户端针对所述数据库的第二数据查询请求;
所述第二应用节点在所述第二内置存储空间查询与所述第二数据查询请求匹配的应用数据,并将查询到的所述应用数据发送至所述客户端。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述分布式系统还包括数据节点,所述数据库设置于所述数据节点。
7.一种数据同步方法,其特征在于,应用于第一应用节点,所述第一应用节点设置于分布式系统中,所述分布式系统还包括负载均衡器、数据库、集群管理节点以及第二应用节点,所述数据库记录的应用数据分别加载至所述第一应用节点的第一内置存储空间和所述第二应用节点的第二内置存储空间,所述方法包括:
所述第一应用节点将所述数据库记录的应用数据加载至所述第一内置存储空间;
所述第一应用节点接收所述负载均衡器发送的客户端针对所述数据库的应用数据的数据更新请求;
所述第一应用节点根据所述数据更新请求更新所述数据库记录的应用数据,并通知所述集群管理节点记录所述数据库的状态为处于被更新状态;
所述第一应用节点在监控到所述集群管理节点记录所述数据库的状态为处于被更新状态时,将处于被更新状态的所述数据库记录的应用数据更新至所述第一内置存储空间。
8.根据权利要求7所述的方法,其特征在于,所述数据更新请求携带有待更新数据,所述第一应用节点根据所述数据更新请求更新所述数据库记录的应用数据,包括:
所述第一应用节点将所述数据库记录的应用数据更新为所述待更新数据。
9.根据权利要求8所述的方法,其特征在于,所述数据更新请求还携带有需更新的部分应用数据在所述数据库的位置,所述第一应用节点将所述数据库记录的应用数据更新为所述待更新数据,包括:
所述第一应用节点将所述数据库的位置上的所述需更新的部分应用数据更新为所述待更新数据。
10.根据权利要求7至9任一项所述的方法,其特征在于,所述方法还包括:
所述第一应用节点接收所述负载均衡器发送的客户端针对所述数据库的第一数据查询请求;
所述第一应用节点在所述第一内置存储空间查询与所述第一数据查询请求匹配的应用数据,并将查询到的所述应用数据发送至所述客户端。
11.根据权利要求7至10任一项所述的方法,其特征在于,所述分布式系统还包括数据节点,所述数据库设置于所述数据节点。
12.一种分布式系统,其特征在于,所述分布式系统包括:负载均衡器、数据库、集群管理节点、第一应用节点以及第二应用节点,其中,
所述第一应用节点,用于将所述数据库记录的应用数据加载至所述第一应用节点的第一内置存储空间;
所述第二应用节点,用于将所述数据库记录的应用数据加载至所述第二应用节点的第二内置存储空间;
所述负载均衡器,用于接收客户端发送的针对所述数据库的应用数据的数据更新请求,并将所述数据更新请求发送至所述第一应用节点;
所述第一应用节点,还用于根据所述数据更新请求更新所述数据库记录的应用数据,并通知所述集群管理节点记录所述数据库的状态为处于被更新状态;
所述第一应用节点,还用于在监控到所述集群管理节点记录所述数据库的状态为处于被更新状态时,将处于被更新状态的所述数据库记录的应用数据更新至所述第一内置存储空间;
所述第二应用节点,还用于在监控到所述集群管理节点记录所述数据库的状态为处于被更新状态时,将处于被更新状态的所述数据库记录的应用数据更新至所述第二内置存储空间。
13.根据权利要求12所述的系统,其特征在于,所述数据更新请求携带有待更新数据,所述第一应用节点,具体用于将所述数据库记录的应用数据更新为所述待更新数据。
14.根据权利要求13所述的系统,其特征在于,所述数据更新请求还携带有需更新的部分应用数据在所述数据库的位置,所述第一应用节点,具体用于将所述数据库的位置上的所述需更新的部分应用数据更新为所述待更新数据。
15.根据权利要求12至14任一项所述的系统,其特征在于,
所述第一应用节点,还用于接收所述负载均衡器发送的客户端针对所述数据库的第一数据查询请求;
所述第一应用节点,还用于在所述第一内置存储空间查询与所述第一数据查询请求匹配的应用数据,并将查询到的所述应用数据发送至所述客户端。
16.根据权利要求12至15任一项所述的系统,其特征在于,
所述第二应用节点,还用于接收所述负载均衡器发送的客户端针对所述数据库的第二数据查询请求;
所述第二应用节点,还用于在所述第二内置存储空间查询与所述第二数据查询请求匹配的应用数据,并将查询到的所述应用数据发送至所述客户端。
17.根据权利要求12至16任一项所述的系统,其特征在于,所述分布式系统还包括数据节点,所述数据库设置于所述数据节点。
18.一种应用节点,其特征在于,所述应用节点设置有内置存储空间,所述应用节点包括:
加载模块,用于将数据库记录的应用数据加载至所述内置存储空间;
接收模块,用于接收负载均衡器发送的客户端针对所述数据库的应用数据的数据更新请求;
更新模块,用于根据所述数据更新请求更新所述数据库记录的应用数据,并通知集群管理节点记录所述数据库的状态为处于被更新状态;
监控模块,用于在监控到所述集群管理节点记录所述数据库的状态为处于被更新状态时,将处于被更新状态的所述数据库记录的应用数据更新至所述内置存储空间。
19.根据权利要求18所述的应用节点,其特征在于,所述数据更新请求携带有待更新数据,所述更新模块,具体用于将所述数据库记录的应用数据更新为所述待更新数据。
20.根据权利要求19所述的应用节点,其特征在于,所述数据更新请求还携带有需更新的部分应用数据在所述数据库的位置,所述更新模块,具体用于将所述数据库的位置上的所述需更新的部分应用数据更新为所述待更新数据。
21.根据权利要求18至20任一项所述的应用节点,其特征在于,所述应用节点还包括查询模块,
所述接收模块,还用于接收所述负载均衡器发送的客户端针对所述数据库的第一数据查询请求;
所述查询模块,用于在所述内置存储空间查询与所述第一数据查询请求匹配的应用数据,并将查询到的所述应用数据发送至所述客户端。
22.一种应用节点,其特征在于,包括处理器和存储器,所述存储器存储有应用程序,所述处理器运行所述应用程序以执行权利要求7至11任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811084187.2A CN109408224A (zh) | 2018-09-17 | 2018-09-17 | 数据同步方法、分布式系统与应用节点 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811084187.2A CN109408224A (zh) | 2018-09-17 | 2018-09-17 | 数据同步方法、分布式系统与应用节点 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109408224A true CN109408224A (zh) | 2019-03-01 |
Family
ID=65465014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811084187.2A Pending CN109408224A (zh) | 2018-09-17 | 2018-09-17 | 数据同步方法、分布式系统与应用节点 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109408224A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110716985A (zh) * | 2019-10-16 | 2020-01-21 | 北京小米移动软件有限公司 | 一种节点信息处理方法、装置及介质 |
CN113821517A (zh) * | 2021-11-23 | 2021-12-21 | 太平金融科技服务(上海)有限公司深圳分公司 | 数据同步方法、装置、设备及存储介质 |
WO2023138533A1 (zh) * | 2022-01-22 | 2023-07-27 | 华为技术有限公司 | 业务协同方法、电子设备、可读存储介质和芯片系统 |
CN116560864A (zh) * | 2023-07-06 | 2023-08-08 | 苏州浪潮智能科技有限公司 | 一种分布式锁的实现方法、装置、系统、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102411598A (zh) * | 2011-07-29 | 2012-04-11 | 株洲南车时代电气股份有限公司 | 一种实现数据一致性的方法及其系统 |
CN103793485A (zh) * | 2014-01-20 | 2014-05-14 | 锐达互动科技股份有限公司 | 客户端基于缓存数据实现查询网络数据的方法 |
CN106230978A (zh) * | 2016-08-31 | 2016-12-14 | 广州市乐商软件科技有限公司 | 分布式缓存同步方法、装置及系统 |
CN107968808A (zh) * | 2016-10-20 | 2018-04-27 | 上海盛霄云计算技术有限公司 | 分布式系统中资源状态同步的方法和系统 |
CN108540556A (zh) * | 2018-04-13 | 2018-09-14 | 南京新贝金服科技有限公司 | 一种基于高速缓存的精细化Session集群共享系统及方法 |
-
2018
- 2018-09-17 CN CN201811084187.2A patent/CN109408224A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102411598A (zh) * | 2011-07-29 | 2012-04-11 | 株洲南车时代电气股份有限公司 | 一种实现数据一致性的方法及其系统 |
CN103793485A (zh) * | 2014-01-20 | 2014-05-14 | 锐达互动科技股份有限公司 | 客户端基于缓存数据实现查询网络数据的方法 |
CN106230978A (zh) * | 2016-08-31 | 2016-12-14 | 广州市乐商软件科技有限公司 | 分布式缓存同步方法、装置及系统 |
CN107968808A (zh) * | 2016-10-20 | 2018-04-27 | 上海盛霄云计算技术有限公司 | 分布式系统中资源状态同步的方法和系统 |
CN108540556A (zh) * | 2018-04-13 | 2018-09-14 | 南京新贝金服科技有限公司 | 一种基于高速缓存的精细化Session集群共享系统及方法 |
Non-Patent Citations (1)
Title |
---|
张仙锋 等: "《电子商务案例分析与比较》", 28 February 2010 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110716985A (zh) * | 2019-10-16 | 2020-01-21 | 北京小米移动软件有限公司 | 一种节点信息处理方法、装置及介质 |
CN110716985B (zh) * | 2019-10-16 | 2022-09-09 | 北京小米移动软件有限公司 | 一种节点信息处理方法、装置及介质 |
CN113821517A (zh) * | 2021-11-23 | 2021-12-21 | 太平金融科技服务(上海)有限公司深圳分公司 | 数据同步方法、装置、设备及存储介质 |
WO2023138533A1 (zh) * | 2022-01-22 | 2023-07-27 | 华为技术有限公司 | 业务协同方法、电子设备、可读存储介质和芯片系统 |
CN116560864A (zh) * | 2023-07-06 | 2023-08-08 | 苏州浪潮智能科技有限公司 | 一种分布式锁的实现方法、装置、系统、设备及存储介质 |
CN116560864B (zh) * | 2023-07-06 | 2023-11-03 | 苏州浪潮智能科技有限公司 | 一种分布式锁的实现方法、装置、系统、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109408224A (zh) | 数据同步方法、分布式系统与应用节点 | |
US9692849B2 (en) | Method and node entity for enhancing content delivery network | |
US7890463B2 (en) | Apparatus and method for a distributed storage global database | |
CN104935654B (zh) | 一种服务器集群系统中的缓存方法、写入点客户端和读客户端 | |
US20050083862A1 (en) | Data migration method, system and node | |
CN108696895A (zh) | 资源获取方法、装置及系统 | |
CN111723148B (zh) | 数据存储方法及装置、存储介质、电子装置 | |
CN107169083A (zh) | 公安卡口海量车辆数据存储与检索方法及装置、电子设备 | |
CN107395659A (zh) | 一种业务受理及共识的方法及装置 | |
CN106844784A (zh) | 数据缓存方法、装置及计算机可读存储介质 | |
CN105095313B (zh) | 一种数据访问方法和设备 | |
CN108737534A (zh) | 一种基于区块链的数据传输方法、装置、区块链系统 | |
CN107623703A (zh) | 全局事务标识gtid的同步方法、装置及系统 | |
US9501428B2 (en) | Managing apparatus | |
US20080201444A1 (en) | File sharing system and file sharing method | |
CN109885612A (zh) | 区块链智能合约的同步生效方法及装置 | |
CN103425684A (zh) | 数据库的操作方法及装置 | |
US8977591B1 (en) | Transitive database replication | |
CN102170476B (zh) | 一种基于云节点自主学习的云计算方法和装置 | |
CN112905676A (zh) | 一种数据文件的导入方法及装置 | |
CN106462421B (zh) | 电信设备以及用于更新电信设备中的软件的方法 | |
CN107562842A (zh) | 资源数据的保护方法及设备 | |
CN109471902A (zh) | 一种数据库切换方法、装置、设备及系统 | |
CN105989193A (zh) | 数据库系统 | |
US9473881B2 (en) | Mobile terminals locating |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220211 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Applicant after: Huawei Cloud Computing Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TA01 | Transfer of patent application right |