CN112818054A - 数据同步方法、装置、计算机设备和存储介质 - Google Patents
数据同步方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN112818054A CN112818054A CN202011103080.5A CN202011103080A CN112818054A CN 112818054 A CN112818054 A CN 112818054A CN 202011103080 A CN202011103080 A CN 202011103080A CN 112818054 A CN112818054 A CN 112818054A
- Authority
- CN
- China
- Prior art keywords
- data
- task
- synchronized
- bus
- data acquisition
- 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
-
- 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
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Hardware Redundancy (AREA)
Abstract
本申请涉及数据处理技术领域,提供了一种数据同步方法、装置、计算机设备和存储介质。该方法包括:通过获取数据获取任务,将数据任获取任务注册到任务总线,执行任务总线中包含的各个数据获取任务,通过预设的标准化接口从各个数据获取任务对应的数据源获取对应的待同步数据,并将获取到的待同步数据同步至内存管理队列。其中,标准化接口配置有数据源接入标准,该标准包含针对多个不同数据源的待同步数据的获取规范。本申请提供的方案,通过预设的标准化接口接收对应数据源的待同步数据,提高了不同数据源的数据的可获取性,通过任务总线统一执行各个数据获取任务,实现了多数据源数据同步获取,也提高了数据源数据获取的效率。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种数据同步方法、装置、计算机设备和存储介质。
背景技术
随着数据处理技术的发展,业务数据和日志数据从离线数据往实时数据仓库迁移,kafka(卡夫卡程序)作为实时数据仓库的数据存储基础,用于从数据源获取数据并处理后,发送给数据消费者。
目前的技术中,kafka在从数据源获取数据时,因数据源具有多样性,通常需要针对不同的数据源分别设置对应的程序接入,数据获取的效率低。
发明内容
基于此,有必要针对目前技术中存在的kalfa数据获取效率低的技术问题,提供一种数据同步方法、装置、计算机设备和存储介质。
一种数据同步方法,所述方法包括:
获取数据获取任务,所述数据获取任务中的信息包含待同步数据的数据标识以及对应的数据源信息;
将所述数据获取任务注册到任务总线;所述任务总线包括至少一个数据获取任务;
执行所述任务总线包含的各个数据获取任务,通过预设的标准化接口从各个数据获取任务对应的数据源获取与所述数据标识对应的待同步数据;所述标准化接口配置有数据源接入标准,所述数据源接入标准中包括针对多个不同数据源的待同步数据的获取规范;
将所述待同步数据同步至内存管理队列。
在其中一个实施例中,所述执行所述任务总线包含的各个数据获取任务,通过预设的标准化接口从各个数据获取任务对应的数据源获取待同步数据,包括:
为所述各个数据获取任务分配对应的线程;
并行执行所述各个数据获取任务对应的线程,各个线程均通过预设的标准化接口从各个数据获取任务对应的数据源获取与所述数据标识对应的待同步数据。
在其中一个实施例中,所述执行所述任务总线包含的各个数据获取任务,通过预设的标准化接口从各个数据获取任务对应的数据源获取待同步数据,还包括:
监听所述各个数据获取任务对应的线程的运行情况;
若监听到某个线程发生运行错误,获取错误类型,获取与所述错误类型对应的处理方式,采用所述处理方式调整所述线程对应的数据获取任务的执行方式。
在其中一个实施例中,所述方法还包括:将所述内存管理队列中的待同步数据发送至消费端服务器;
所述将所述数据获取任务注册到任务总线之前,所述方法还包括:
初始化所述任务总线,为所述任务总线分配对应的内存资源;
根据所述内存资源,配置所述任务总线阀门机制;所述阀门机制启动后用于在预设等待时间内停止将所述待同步数据同步至内存管理队列,且在预设等待时间后根据消费端服务器的数据接收状态,将所述待同步数据同步至内存管理队列。
在其中一个实施例中,所述将所述待同步数据同步至内存管理队列,包括:
获取所述内存管理队列的当前数据存取状态;
若根据所述当前数据存取状态确定所述内存管理队列为数据积压状态,触发所述任务总线的所述阀门机制。
在其中一个实施例中,触发所述任务总线的所述阀门机制之后,还包括:
若数据获取任务对应的数据源为预设的敏感数据源,在所述预设等待时间内,停止从所述数据源获取待同步数据;
若数据获取任务对应的数据源为非敏感数据源,在所述预设等待时间内,从所述数据源获取待同步数据并丢弃。
在其中一个实施例中,触发所述任务总线的所述阀门机制之后,还包括:
在所述预设等待时间之后,向所述消费端服务器发送所述内存管理队列中的待同步数据;
若数据发送成功,继续将所述待同步数据同步至内存管理队列,且向所述消费端服务器发送所述内存管理队列中的待同步数据。
一种数据同步装置,所述装置包括:
任务获取模块,用于获取数据获取任务,所述数据获取任务中的信息包含待同步数据的数据标识以及对应的数据源信息;
任务注册模块,用于将所述数据获取任务注册到任务总线;所述任务总线包括至少一个数据获取任务;
任务执行模块,用于执行所述任务总线包含的各个数据获取任务,通过预设的标准化接口从各个数据获取任务对应的数据源获取与所述数据标识对应的待同步数据;所述标准化接口配置有数据源接入标准,所述数据源接入标准中包括针对多个不同数据源的待同步数据的获取规范;
数据同步模块,用于将所述待同步数据同步至内存管理队列。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一实施例中数据同步方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例中数据同步方法步骤。
上述数据同步方法、装置、计算机设备和存储介质,通过获取数据获取任务,将数据任获取任务注册到任务总线,执行任务总线中包含的各个数据获取任务,通过预设的标准化接口从各个数据获取任务对应的数据源获取对应的待同步数据,并将获取到的待同步数据同步至内存管理队列。其中,任务总线包括至少一个数据获取任务,标准化接口配置有数据源接入标准,该标准包含针对多个不同数据源的待同步数据的获取规范。本申请提供的方案,通过预设的标准化接口接收对应数据源的待同步数据,提高了不同数据源的数据的可获取性,通过任务总线统一执行各个数据获取任务,实现了多数据源数据同步获取,也提高了数据源数据获取的效率。
附图说明
图1为一个实施例中数据同步方法的应用环境示意图;
图2为一个实施例中数据同步方法的流程示意图;
图3为另一个实施例中数据同步方法的流程示意图;
图4为另一个实施例中数据同步方法的流程示意图;
图5为另一个实施例中数据同步方法的流程示意图;
图6为一个实施例中数据同步装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的数据同步方法,可以应用于如图1所示的应用环境中。其中,数据同步服务器102与数据源104通信连接。数据源104可以包括多个不同的数据源。数据同步服务器102从数据源104获取数据,进行标准化处理。其中,数据同步服务器102可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图1所示的应用环境中,还可以包括消费端服务器106,消费端服务器106与数据同步服务器102通信连接,并接收数据同步服务器102发送的数据。消费端服务器106可以用独立的服务器或者是多个服务器组成的服务器集群来实现。消费端服务器106可以是处理流式数据的服务器,例如kafka服务器。
在一个实施例中,如图2所示,提供了一种数据同步方法,本实施例以该方法应用于数据同步服务器102进行举例说明,该方法包括以下步骤:
步骤S201,获取数据获取任务。
其中,数据获取任务中的信息可以包含待同步数据的数据标识以及对应的数据源信息。数据获取任务可以包括不同的数据源的数据,各个数据源的数据格式可能为标准化格式数据,也可能为非标准化格式的数据,不符合标准化接口定义的数据可能无法被处理及消费,影响数据接入的效率和准确性。数据同步服务器102可以根据数据需求,获取数据获取任务。
步骤S202,将数据获取任务注册到任务总线。
其中,任务总线可以用于定义数据交换标准,任务总线可以包括至少一个数据获取任务、通过多线程机制从各个数据获取任务对应的数据源进行同步数据获取。数据同步服务器102在进行任务总线配置时,可以将数据获取任务注册到任务总线,以从对应的数据源根据对应的数据获取规范,获取与数据标识对应的待同步数据。具体的,数据同步服务器102将通过将数据获取任务写入到任务总线程序中的方式,实现各个数据获取任务的在任务总线中的注册。
步骤S203,执行任务总线包含的各个数据获取任务,通过预设的标准化接口从各个数据获取任务对应的数据源获取与数据标识对应的待同步数据。
其中,数据同步服务器102可以根据不同的数据获取任务,预先配置标准化接口。标准化接口可以用于接入各个数据源的数据,标准化接口配置有数据源接入标准,包括但不限于数据源初始化、数据源数据获取、格式化数据、数据同步、释放回收功能等,即包括针对多个不同数据源的待同步数据的获取规范,使得可以通过标准化接口获取到对应的数据源的数据。数据同步服务器102也可以为各个数据源的数据获取任务配置对应的线程,由任务总线总体负责各个数据获取任务对应线程的开始、结束、任务状态管理、任务错误管理以及硬件资源回收。
具体实现中,数据同步服务器102可以执行任务总线中包含的各个数据获取任务,从对应的各个标准化数据接口,按照预先设置的各个数据源的待同步数据的获取规范,通过多线程并行的方式,获取所需的待同步数据。
步骤S204,将待同步数据同步至内存管理队列。
其中,内存管理队列可以用于存储各个数据获取任务获取到的待同步数据。内存管理队列的长度可以根据任务总线可承载的数据获取任务量确定。数据同步服务器102可以预先设定各个数据获取任务的待同步数据同步到内存管理队列的顺序,例如按照获取时间、按照各个数据获取任务的优先级等。
具体实现中,数据同步服务器102可以将获取到的待同步数据,按照设定的顺序同步到内存管理队列中。
上述数据同步方法中,通过获取数据获取任务,将数据任获取任务注册到任务总线,执行任务总线中包含的各个数据获取任务,通过预设的标准化接口从各个数据获取任务对应的数据源获取对应的待同步数据,并将获取到的待同步数据同步至内存管理队列。其中,任务总线包括至少一个数据获取任务,标准化接口配置有数据源接入标准,该标准包含针对多个不同数据源的待同步数据的获取规范。本申请提供的方案,通过预设的标准化接口接收对应数据源的待同步数据,提高了不同数据源的数据的可获取性,通过任务总线统一执行各个数据获取任务,实现了多数据源数据同步获取,也提高了数据源数据获取的效率。
在一个实施例中,步骤S203中确定执行任务总线包含的各个数据获取任务,通过预设的标准化接口从各个数据获取任务对应的数据源获取待同步数据的步骤包括:
为各个数据获取任务分配对应的线程;并行执行各个数据获取任务对应的线程,各个线程均通过预设的标准化接口从各个数据获取任务对应的数据源获取与数据标识对应的待同步数据。
本实施例中,线程可以是操作系统能够进行运算调度的最小单位,线程并行执行不同的任务,各个线程之间可以共享任务总线的内存资源。数据同步服务器102可以为各个数据获取任务分配对应的线程,用于通过对应的标准化接口,从对应的数据源获取与数据标识对应的待同步数据。在同步任务启动后,数据同步服务器102可以并行执行各个线程,实现待同步数据的同步获取。
上述实施例的方案,通过为各个数据获取任务分配对应的线程,并行执行线程获取待同步数据,提升了从各个数据源获取待同步数据的效率。
在一个实施例中,步骤S203中确定执行任务总线包含的各个数据获取任务,通过预设的标准化接口从各个数据获取任务对应的数据源获取待同步数据的步骤,还包括:
监听各个数据获取任务对应的线程的运行情况;若监听到某个线程发生运行错误,获取错误类型,获取与错误类型对应的处理方式,采用处理方式调整线程对应的数据获取任务的执行方式。
本实施例中,数据同步服务器102可以对各个线程的运行错误情况进行识别和处理,并根据运行错误类型预先配置对应的处理方式。线程运行错误的错误类型,可以是数据获取或者数据消费发生错误,例如网络延迟、数据消费出现问题以及数据源故障等。错误类型对应的处理方式,可以是将线程对应的数据获取任务挂起,或者继续执行。例如,当线程的错误类型为数据源故障或网络故障,可以将该线程对应的数据获取任务挂起;当线程的错误类型为数据消费端发生错误,且该线程对应的数据源为敏感数据源,则可以继续执行该数据获取任务,并将获取到的数据丢弃。数据同步服务器102可以通过任务总线持续监听各个线程的运行情况,及时获取线程的运行错误,并根据预先设置的错误类型对应的处理方式,调整数据获取任务,选择继续执行任务或者挂起。
在一些实施例中,数据同步服务器102在获取数据获取任务,或者在进行任务总线配置时,也可以预先配置各个数据获取任务的常见错误类型和对应的处理方式,当线程执行发出对应的报错指令时,自动触发调整线程对应的数据获取任务的执行方式。
上述实施例的方案,数据同步服务器102可以监听各个线程的运行情况,当监听到线程发生运行错误时,根据错误类型确定对应的处理方式,并调整线程对应的数据获取任务的执行方式,使得运行错误及时得到响应,提升了数据同步的可靠性。
在一个实施例中,上述方法还包括,将内存管理队列中的待同步数据发送至消费端服务器,将数据获取任务注册到任务总线之前,上述方法还包括:
初始化任务总线,为任务总线分配对应的内存资源;根据内存资源,配置任务总线阀门机制。
本实施例中,数据同步服务器102可以将内存管理队列中的待同步数据发送至消费端服务器106。消费端服务器106可以是kafka服务器。数据同步服务器102可以为任务总线分配对应的内存资源,并设定任务总线的可承载的数据获取任务量、内存管理队列的队列长度以及对应的阀门机制。内存资源可以用于各个线程的运行和存储各个数据获取任务获取到的待同步数据,各个数据获取任务可以共用该内存资源,数据的导入和消费在该内存的可用范围内进行。在一些情况下,数据同步服务器102可以增加数据获取任务,并在内存资源的范围内,为该数据获取任务分配对应的线程。数据同步服务器102也可以通过参数调整总线任务对应的内存资源,调整可用内存的大小。当数据的同步和消费超出该内存资源的范围时,各个数据获取任务对应的线程停止进行数据获取,以等待内存资源释放。
数据同步服务器102可以在消费端服务器106发生消费异常时,启动阀门机制,在预设等待时间内停止向内存管理队列同步数据,以防止数据同步发生错误。阀门机制在启动后,数据同步服务器102可以在预设等待时间内停止将待同步数据同步至内存管理队列,且在预设等待时间后根据消费端服务器106的数据接收状态,判断是否将待同步数据同步至内存管理队列。
在一些实施例中,数据同步服务器102可以根据数据源的数量、服务器的性能,确定为任务总线分配的内存资源,并确定内存管理队列的队列长度。阀门机制可以根据预设等待时间内,内存管理队列的数据消费情况设定阀门触发条件,当满足预设的条件时,阀门机制可以自动启动。
在一些实施例中,线程对应的数据获取任务执行完毕之后,数据同步服务器102回收该线程对应的内存资源,当任务总线的所有数据获取任务全部执行完毕后,程序退出,释放为该任务总线配置的所有内存资源。
上述实施例的方案,通过引入内存管理队列机制对任务总线的内存资源进行控制,避免数据同步错误,提高数据同步的可靠性。
在一个实施例中,步骤S204中确定的将待同步数据同步至内存管理队列的步骤包括:
获取内存管理队列的当前数据存取状态;若根据当前数据存取状态确定内存管理队列为数据积压状态,触发任务总线的所述阀门机制。
本实施例中,当前数据存取状态可以包括内存管理队列中的数据在设定的时间间隔中的变化情况,若未发生预设的变化,则可以判断内存管理队列为数据积压状态。例如,若内存管理队列的队列长度为10个数据,可以设定30秒内,判断内存管理队列的数据是否被消费端服务器消费,若未发生消费,则内存管理队列不能接收新的待同步数据,产生数据积压状态,触发阀门机制,使得各个数据获取任务不再将待同步数据同步到内存管理队列。在实际应用中,数据同步服务器102也设置更加复杂的情况,分别设定不同的触发阀门机制的条件,以及触发阀门机制后,不同的触发条件对应的预设等待时间。
上述实施例的方案,根据内存管理队列的当前数据存取状态确定内存管理队列为数据积压状态时,则触发阀门机制,实现对消费端异常的及时监控和响应,提高了数据同步的可靠性。
在一个实施例中,触发任务总线的阀门机制之后,还包括:
若数据获取任务对应的数据源为预设的敏感数据源,在预设等待时间内,停止从数据源获取待同步数据;若数据获取任务对应的数据源为非敏感数据源,在预设等待时间内,从数据源获取待同步数据并丢弃。
本实施例中,数据获取任务对应的数据源有对应的数据生产预警机制,当数据获取任务持续不从该数据源取数据时,可能会产生生产预警。消费端服务器106对数据源的数据的准确程度的要求也不同。数据同步服务器102可以根据数据源的生产预警机制以及消费端服务器106对数据的准确性的需求,将数据源划分为敏感数据源和非敏感数据源。对于敏感数据源,触发任务总线的阀门机制后,在预设等待时间内,停止从该数据源获取待同步数据,等待消费端服务器106消费内存管理队列中的数据。对于非敏感数据源,触发任务总线的阀门机制后,在预设等待时间内,继续从该数据源获取待同步数据,并将获取到的数据丢弃。
在一些实施例中,当数据源具有相应的生产预警机制时,该数据源为非敏感数据源。当数据源未设置生产预警机制时,若消费端服务器106对数据源的数据准确性要求高,不允许数据缺失,该数据源可以为敏感数据源,反之,则可以是非敏感数据源。
上述实施例的方案,在触发阀门机制之后,数据同步服务器102根据数据源的敏感程度,采用不同的方式从数据源获取待同步数据,避免数据偏差,提升了数据同步方法的可靠性。
在一个实施例中,触发任务总线的阀门机制之后,还包括:
在预设等待时间之后,向消费端服务器发送内存管理队列中的待同步数据;若数据发送成功,继续将待同步数据同步至内存管理队列,且向消费端服务器发送内存管理队列中的待同步数据。
本实施例中,阀门机制启动后,经过预设等待时间,数据同步服务器102可以向消费端服务器106发送内存管理队列中的待同步数据,以根据消费端服务器106的消费情况,确定消费端服务器106是否可以正常消费数据。当消费端服务器106开始正常消费数据后,内存管理队列的数据开始流动,则各个数据获取任务可以继续将获取到的待同步数据同步至内训管理队列。若消费端服务器106仍不能消费数据,则产生报错指令,则前述阀门机制失效,重新触发任务总线的阀门机制,继续等待。
上述实施例的方案,数据同步服务器102在阀门机制启动后,经过预设等待时间,向消费端服务器106发送内存管理队列中的待同步数据判断消费端服务器106是否可以消费数据,及时重启数据同步,提升了数据同步的效率。
在一个实施例中,如图3所示,提供了一种数据同步方法的流程,并具体公开如下内容:服务器确定需要数据同步的外部多种数据源,按照标准接口进行标准化接入该多种外部数据源,获得标准化数据获取任务,在任务总线中注册该获取任务,由任务总线进行统一标准化处理。服务器执行任务总线中注册的多种数据获取任务,获取到对应的数据源数据,通过多线程同步到kafka中。其中,若所有数据获取任务执行完毕,则程序终止。若任一数据获取任务发生数据错误,启动统一错误处理机制,按错误情况继续拉起该任务或者暂停该该任务。
在一个实施例中,如图4所示,提供了一种阀门机制的流程,并具体公开如下内容:服务器可以将各个数据获取任务获取的数据同步到内存资源中,若发生数据消费积压,触发阀门机制。
此时,若数据源不允许数据积压,则在自定义的错误修复等待时间内,暂停将各个数据获取任务获取到的数据同步到kafka中,继续获取数据并丢弃。
若数据源允许数据积压,且数据源允许同步数据有部分丢失,则在自定义的错误修复等待时间内,暂停将各个数据获取任务获取到的数据同步到kafka中,继续获取数据并丢弃。若数据源允许数据积压,且数据源不允许同步数据有部分丢失,则在自定义的错误修复等待时间内,暂停数据同步到kafka,并暂停数据获取任务。
在上述自定义的错误修复等待结束后,服务器将内存中的数据向kafka发送,判断kafka是否可以消费数据,如果可以消费数据,则继续将数据发送到kafka,如果不可以消费数据,则判断发生数据消费积压,原阀门机制失效,重新触发阀门机制。
在一个实施例中,如图5所示,提供了一种数据同步方法,该方法包括:
步骤S501,数据同步服务器获取数据获取任务,数据获取任务中的信息包含待同步数据的数据标识以及对应的数据源信息。
步骤S502,数据同步服务器初始化任务总线,为任务总线分配对应的内存资源;根据内存资源,配置任务总线阀门机制;阀门机制启动后用于在预设等待时间内停止将待同步数据同步至内存管理队列,且在预设等待时间后根据消费端服务器的数据接收状态,将待同步数据同步至内存管理队列。数据同步服务器将数据获取任务注册到任务总线;任务总线包括至少一个数据获取任务。
步骤S503,数据同步服务器为各个数据获取任务分配对应的线程;并行执行各个数据获取任务对应的线程,各个线程均通过预设的标准化接口从各个数据获取任务对应的数据源获取与数据标识对应的待同步数据。
步骤S504,数据同步服务器将待同步数据同步至内存管理队列。
步骤S505,数据同步服务器将内存管理队列中的待同步数据发送至消费端服务器;
步骤S506,数据同步服务器获取内存管理队列的当前数据存取状态;若根据当前数据存取状态确定内存管理队列为数据积压状态,触发任务总线的阀门机制;若数据获取任务对应的数据源为预设的敏感数据源,在预设等待时间内,停止从数据源获取待同步数据;若数据获取任务对应的数据源为非敏感数据源,在预设等待时间内,从数据源获取待同步数据并丢弃。
步骤S507,在预设等待时间之后,数据同步服务器向消费端服务器发送内存管理队列中的待同步数据;若数据发送成功,继续将待同步数据同步至内存管理队列,且向消费端服务器发送内存管理队列中的待同步数据。
上述实施例的方案,数据同步服务器获取数据获取任务,将数据获取任务注册到任务总线,执行各个数据获取任务对应的线程从数据源获取待同步数据,将待同步数据同步至内存管理队列后,并发送至消费端服务器。数据同步服务器根据内存管理队列的积压情况,触发阀门机制,在预设等待时间内,根据数据源的敏感性,确定对应数据获取任务的执行方式,在预设等待时间后,监测消费端服务器的数据消费状况,确定是否继续向内存管理队列同步数据。上述方案,通过任务总线控制多线程同步获取数据,提高数据同步的效率,设定阀门机制控制内存管理队列的数据同步和数据消费,进一步提升了数据同步方法的可靠性。
应该理解的是,虽然图2-5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-5中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种数据同步装置,该装置500包括:
任务获取模块601,用于获取数据获取任务,数据获取任务中的信息包含待同步数据的数据标识以及对应的数据源信息;
任务注册模块602,用于将数据获取任务注册到任务总线;任务总线包括至少一个数据获取任务;
任务执行模块603,用于执行任务总线包含的各个数据获取任务,通过预设的标准化接口从各个数据获取任务对应的数据源获取与数据标识对应的待同步数据;标准化接口配置有数据源接入标准,数据源接入标准中包括针对多个不同数据源的待同步数据的获取规范;
数据同步模块604,用于将待同步数据同步至内存管理队列。
在一个实施例中,任务执行模块603还包括:线程配置单元,用于为各个数据获取任务分配对应的线程;并行执行各个数据获取任务对应的线程,各个线程均通过预设的标准化接口从各个数据获取任务对应的数据源获取与数据标识对应的待同步数据。
在一个实施例中,任务执行模块603还包括:错误监听单元,用于监听各个数据获取任务对应的线程的运行情况;若监听到某个线程发生运行错误,获取错误类型,获取与错误类型对应的处理方式,采用处理方式调整线程对应的数据获取任务的执行方式。
在一个实施例中,上述装置600还包括:数据发送模块,用于将内存管理队列中的待同步数据发送至消费端服务器。
在一个实施例中,数据同步模块604还包括:内存配置单元,用于初始化任务总线,为任务总线分配对应的内存资源;根据内存资源,配置任务总线阀门机制;阀门机制启动后用于在预设等待时间内停止将待同步数据同步至内存管理队列,且在预设等待时间后根据消费端服务器的数据接收状态,将待同步数据同步至内存管理队列。
在一个实施例中,数据同步模块604还包括:阀门触发单元,用于获取内存管理队列的当前数据存取状态;若根据当前数据存取状态确定内存管理队列为数据积压状态,触发任务总线的阀门机制。
在一个实施例中,阀门触发单元进一步用于:若数据获取任务对应的数据源为预设的敏感数据源,在预设等待时间内,停止从数据源获取待同步数据;若数据获取任务对应的数据源为非敏感数据源,在预设等待时间内,从数据源获取待同步数据并丢弃。
在一个实施例中,阀门触发单元进一步用于:在预设等待时间之后,向消费端服务器发送内存管理队列中的待同步数据;若数据发送成功,继续将待同步数据同步至内存管理队列,且向消费端服务器发送内存管理队列中的待同步数据;若数据发送失败,根据报错指令,触发任务总线的阀门机制。
关于数据同步装置600的具体限定可以参见上文中对于数据同步方法的限定,在此不再赘述。上述数据同步装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
本申请提供的数据同步分析方法,可以应用于计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储任务总线配置和待同步数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据同步方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行该计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据同步方法,其特征在于,所述方法包括:
获取数据获取任务,所述数据获取任务中的信息包含待同步数据的数据标识以及对应的数据源信息;
将所述数据获取任务注册到任务总线;所述任务总线包括至少一个数据获取任务;
执行所述任务总线包含的各个数据获取任务,通过预设的标准化接口从各个数据获取任务对应的数据源获取与所述数据标识对应的待同步数据;所述标准化接口配置有数据源接入标准,所述数据源接入标准中包括针对多个不同数据源的待同步数据的获取规范;
将所述待同步数据同步至内存管理队列。
2.根据权利要求1所述的方法,其特征在于,所述执行所述任务总线包含的各个数据获取任务,通过预设的标准化接口从各个数据获取任务对应的数据源获取待同步数据,包括:
为所述各个数据获取任务分配对应的线程;
并行执行所述各个数据获取任务对应的线程,各个线程均通过预设的标准化接口从各个数据获取任务对应的数据源获取与所述数据标识对应的待同步数据。
3.根据权利要求2所述的方法,其特征在于,所述执行所述任务总线包含的各个数据获取任务,通过预设的标准化接口从各个数据获取任务对应的数据源获取待同步数据,还包括:
监听所述各个数据获取任务对应的线程的运行情况;
若监听到某个线程发生运行错误,获取错误类型,获取与所述错误类型对应的处理方式,采用所述处理方式调整所述线程对应的数据获取任务的执行方式。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:将所述内存管理队列中的待同步数据发送至消费端服务器;
所述将所述数据获取任务注册到任务总线之前,所述方法还包括:
初始化所述任务总线,为所述任务总线分配对应的内存资源;
根据所述内存资源,配置所述任务总线阀门机制;所述阀门机制启动后用于在预设等待时间内停止将所述待同步数据同步至内存管理队列,且在预设等待时间后根据消费端服务器的数据接收状态,将所述待同步数据同步至内存管理队列。
5.根据权利要求4所述的方法,其特征在于,所述将所述待同步数据同步至内存管理队列,包括:
获取所述内存管理队列的当前数据存取状态;
若根据所述当前数据存取状态确定所述内存管理队列为数据积压状态,触发所述任务总线的所述阀门机制。
6.根据权利要求5所述的方法,其特征在于,触发所述任务总线的所述阀门机制之后,还包括:
若数据获取任务对应的数据源为预设的敏感数据源,在所述预设等待时间内,停止从所述数据源获取待同步数据;
若数据获取任务对应的数据源为非敏感数据源,在所述预设等待时间内,从所述数据源获取待同步数据并丢弃。
7.根据权利要求5所述的方法,其特征在于,触发所述任务总线的所述阀门机制之后,还包括:
在所述预设等待时间之后,向所述消费端服务器发送所述内存管理队列中的待同步数据;
若数据发送成功,继续将所述待同步数据同步至内存管理队列,且向所述消费端服务器发送所述内存管理队列中的待同步数据。
8.一种数据同步装置,其特征在于,所述装置包括:
任务获取模块,用于获取数据获取任务,所述数据获取任务中的信息包含待同步数据的数据标识以及对应的数据源信息;
任务注册模块,用于将所述数据获取任务注册到任务总线;所述任务总线包括至少一个数据获取任务;
任务执行模块,用于执行所述任务总线包含的各个数据获取任务,通过预设的标准化接口从各个数据获取任务对应的数据源获取与所述数据标识对应的待同步数据;所述标准化接口配置有数据源接入标准,所述数据源接入标准中包括针对多个不同数据源的待同步数据的获取规范;
数据同步模块,用于将所述待同步数据同步至内存管理队列。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011103080.5A CN112818054B (zh) | 2020-10-15 | 2020-10-15 | 数据同步方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011103080.5A CN112818054B (zh) | 2020-10-15 | 2020-10-15 | 数据同步方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112818054A true CN112818054A (zh) | 2021-05-18 |
CN112818054B CN112818054B (zh) | 2022-05-06 |
Family
ID=75853085
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011103080.5A Active CN112818054B (zh) | 2020-10-15 | 2020-10-15 | 数据同步方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112818054B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113656221A (zh) * | 2021-08-18 | 2021-11-16 | 中国邮政储蓄银行股份有限公司 | 数据的处理方法、装置、计算机可读存储介质及处理器 |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012079351A1 (zh) * | 2010-12-14 | 2012-06-21 | 中兴通讯股份有限公司 | 多线程数据同步方法及装置 |
CN103338206A (zh) * | 2013-07-10 | 2013-10-02 | 中兴智能交通(无锡)有限公司 | 一种基于数据总线技术实现数据交换的方法及装置 |
CN106657314A (zh) * | 2016-12-14 | 2017-05-10 | 北京奇艺世纪科技有限公司 | 跨数据中心数据同步系统及方法 |
CN106933534A (zh) * | 2015-12-31 | 2017-07-07 | 阿里巴巴集团控股有限公司 | 一种数据同步方法和装置 |
US20180063242A1 (en) * | 2016-08-26 | 2018-03-01 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method and apparatus for operating infrastructure layer in cloud computing architecture |
CN107908472A (zh) * | 2017-09-30 | 2018-04-13 | 平安科技(深圳)有限公司 | 数据同步装置、方法及计算机可读存储介质 |
CN108694199A (zh) * | 2017-04-10 | 2018-10-23 | 北京京东尚科信息技术有限公司 | 数据同步装置、方法、存储介质及电子设备 |
WO2019047479A1 (zh) * | 2017-09-08 | 2019-03-14 | 广东省建设信息中心 | 一种普适多源异构大规模数据同步系统 |
CN109788053A (zh) * | 2019-01-04 | 2019-05-21 | 深圳壹账通智能科技有限公司 | 数据同步方法和系统 |
CN110472102A (zh) * | 2019-08-22 | 2019-11-19 | 北京锐安科技有限公司 | 一种数据处理方法、装置、设备和存储介质 |
CN110569123A (zh) * | 2019-07-31 | 2019-12-13 | 苏宁云计算有限公司 | 线程分配方法、装置、计算机设备和存储介质 |
CN110704458A (zh) * | 2019-08-15 | 2020-01-17 | 平安科技(深圳)有限公司 | 数据同步方法、装置、计算机设备及存储介质 |
CN111046036A (zh) * | 2019-11-05 | 2020-04-21 | 深信服科技股份有限公司 | 数据同步方法、装置、系统及存储介质 |
CN111343277A (zh) * | 2020-03-04 | 2020-06-26 | 腾讯科技(深圳)有限公司 | 分布式数据存储方法、系统、计算机设备和存储介质 |
CN111400408A (zh) * | 2020-04-13 | 2020-07-10 | 上海东普信息科技有限公司 | 数据同步方法、装置、设备及存储介质 |
CN111694840A (zh) * | 2020-04-29 | 2020-09-22 | 平安科技(深圳)有限公司 | 数据同步方法、装置、服务器及存储介质 |
-
2020
- 2020-10-15 CN CN202011103080.5A patent/CN112818054B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012079351A1 (zh) * | 2010-12-14 | 2012-06-21 | 中兴通讯股份有限公司 | 多线程数据同步方法及装置 |
CN103338206A (zh) * | 2013-07-10 | 2013-10-02 | 中兴智能交通(无锡)有限公司 | 一种基于数据总线技术实现数据交换的方法及装置 |
CN106933534A (zh) * | 2015-12-31 | 2017-07-07 | 阿里巴巴集团控股有限公司 | 一种数据同步方法和装置 |
US20180063242A1 (en) * | 2016-08-26 | 2018-03-01 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method and apparatus for operating infrastructure layer in cloud computing architecture |
CN106657314A (zh) * | 2016-12-14 | 2017-05-10 | 北京奇艺世纪科技有限公司 | 跨数据中心数据同步系统及方法 |
CN108694199A (zh) * | 2017-04-10 | 2018-10-23 | 北京京东尚科信息技术有限公司 | 数据同步装置、方法、存储介质及电子设备 |
WO2019047479A1 (zh) * | 2017-09-08 | 2019-03-14 | 广东省建设信息中心 | 一种普适多源异构大规模数据同步系统 |
CN107908472A (zh) * | 2017-09-30 | 2018-04-13 | 平安科技(深圳)有限公司 | 数据同步装置、方法及计算机可读存储介质 |
CN109788053A (zh) * | 2019-01-04 | 2019-05-21 | 深圳壹账通智能科技有限公司 | 数据同步方法和系统 |
CN110569123A (zh) * | 2019-07-31 | 2019-12-13 | 苏宁云计算有限公司 | 线程分配方法、装置、计算机设备和存储介质 |
CN110704458A (zh) * | 2019-08-15 | 2020-01-17 | 平安科技(深圳)有限公司 | 数据同步方法、装置、计算机设备及存储介质 |
CN110472102A (zh) * | 2019-08-22 | 2019-11-19 | 北京锐安科技有限公司 | 一种数据处理方法、装置、设备和存储介质 |
CN111046036A (zh) * | 2019-11-05 | 2020-04-21 | 深信服科技股份有限公司 | 数据同步方法、装置、系统及存储介质 |
CN111343277A (zh) * | 2020-03-04 | 2020-06-26 | 腾讯科技(深圳)有限公司 | 分布式数据存储方法、系统、计算机设备和存储介质 |
CN111400408A (zh) * | 2020-04-13 | 2020-07-10 | 上海东普信息科技有限公司 | 数据同步方法、装置、设备及存储介质 |
CN111694840A (zh) * | 2020-04-29 | 2020-09-22 | 平安科技(深圳)有限公司 | 数据同步方法、装置、服务器及存储介质 |
Non-Patent Citations (2)
Title |
---|
HOANG-VU DANG ET AL.: "Advanced Thread Synchronization for Multithreaded MPI Implementations", 《 2017 17TH IEEE/ACM INTERNATIONAL SYMPOSIUM ON CLUSTER, CLOUD AND GRID COMPUTING (CCGRID)》 * |
曾泽堂: "一种数据同步系统的设计与实现", 《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113656221A (zh) * | 2021-08-18 | 2021-11-16 | 中国邮政储蓄银行股份有限公司 | 数据的处理方法、装置、计算机可读存储介质及处理器 |
Also Published As
Publication number | Publication date |
---|---|
CN112818054B (zh) | 2022-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108845884B (zh) | 物理资源分配方法、装置、计算机设备和存储介质 | |
CN107016480B (zh) | 任务调度方法、装置及系统 | |
US8984123B2 (en) | Rejuvenation processing device, rejuvenation processing system, computer program, and data processing method | |
US8893133B2 (en) | Dynamic test scheduling by ordering tasks for performance based on similarities between the tasks | |
CN111625331B (zh) | 任务调度方法、装置、平台、服务器及存储介质 | |
CA3168286A1 (en) | Data flow processing method and system | |
EP3591485B1 (en) | Method and device for monitoring for equipment failure | |
CN111324423B (zh) | 容器内进程的监控方法、装置、存储介质和计算机设备 | |
US10994675B2 (en) | Vehicle control device and vehicle system | |
US10498817B1 (en) | Performance tuning in distributed computing systems | |
US10075326B2 (en) | Monitoring file system operations between a client computer and a file server | |
CN112818054B (zh) | 数据同步方法、装置、计算机设备和存储介质 | |
CN111722934A (zh) | 分布式定时任务处理方法及系统 | |
US9413542B2 (en) | Managing data feeds | |
CN111506388B (zh) | 容器性能探测方法、容器管理平台及计算机存储介质 | |
US11544091B2 (en) | Determining and implementing recovery actions for containers to recover the containers from failures | |
CN112256384B (zh) | 基于容器技术的服务集合处理方法、装置和计算机设备 | |
CN111435356A (zh) | 数据特征提取方法、装置、计算机设备以及存储介质 | |
CN114816866A (zh) | 故障处理方法、装置、电子设备和存储介质 | |
CN114697334A (zh) | 一种编排任务的执行方法和装置 | |
CN114416276A (zh) | 设备管理服务的调度方法、装置、电子设备及存储介质 | |
CN113886490A (zh) | 分布式数据库中无状态计算实例高可用的实现方法及系统 | |
US10877804B2 (en) | Computing apparatus, electronic device, and information processing method | |
CN115080199A (zh) | 任务调度方法、系统、设备、存储介质及程序产品 | |
CN117573306A (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 |