CN112988881A - 一种数据同步方法、装置及计算机可读存储介质 - Google Patents
一种数据同步方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN112988881A CN112988881A CN201911282623.1A CN201911282623A CN112988881A CN 112988881 A CN112988881 A CN 112988881A CN 201911282623 A CN201911282623 A CN 201911282623A CN 112988881 A CN112988881 A CN 112988881A
- Authority
- CN
- China
- Prior art keywords
- data synchronization
- target
- synchronization request
- target database
- database
- 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
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000004590 computer program Methods 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 5
- 238000004891 communication Methods 0.000 claims description 3
- 230000001360 synchronised effect Effects 0.000 description 11
- 230000006399 behavior Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000013523 data management Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
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
- 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/21—Design, administration or maintenance of databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据同步方法、装置及计算机可读存储介质,控制目标程序实例向目标数据库发送数据同步请求;接收目标数据库基于数据同步请求所响应的包括数据同步请求计数值的返回值;在返回值中的数据同步请求计数值为1时,通过目标程序实例从目标数据库进行数据同步。通过本申请方案的实施,控制程序实例在数据库响应的数据同步请求计数值为1时才进行数据同步,从而使得其它程序实例所重复进行的数据同步请求无效,有效降低了服务器资源占用,提升了服务器资源的有效利用率。
Description
技术领域
本申请涉及电子技术领域,尤其涉及一种数据同步方法、装置及计算机可读存储介质。
背景技术
数据库是按照数据结构来存储和管理数据的仓库,是作为数据持久化的常见工具,而随着信息技术的发展,除了数据存储和管理,还逐渐衍生出数据同步、数据恢复等许多需要研究的技术热点。
数据同步也即将数据从一个数据库同步到另外一个数据库,例如从主数据库同步到备用数据库,而通常用来同步数据的程序实例同时在多台服务器上均进行部署,那么可同步数据的程序实例则可能有多个,并且这些程序实例的代码是相同的,从而在实际应用中会出现多个程序实例同时从一个数据库中读取数据并同步到另外一个数据库的情况,导致服务器资源占用较为严重,并且由于数据被重复同步,导致服务器资源的有效利用率较低。
发明内容
本申请实施例提供了一种数据同步方法、装置及计算机可读存储介质,至少能够解决相关技术中多个程序实例会同时执行相同的数据同步事件,所导致的服务器资源占用较为严重以及服务器资源的有效利用率较低的问题。
本申请实施例第一方面提供了一种数据同步方法,包括:
控制目标程序实例向目标数据库发送数据同步请求;
接收所述目标数据库基于所述数据同步请求所响应的返回值;其中,所述返回值包括所述目标数据库中计数器当前的数据同步请求计数值;
在所述返回值中的所述数据同步请求计数值为1时,通过所述目标程序实例从所述目标数据库进行数据同步。
本申请实施例第二方面提供了一种数据同步装置,包括:
控制模块,用于控制目标程序实例向目标数据库发送数据同步请求;
接收模块,用于接收所述目标数据库基于所述数据同步请求所响应的返回值;其中,所述返回值包括所述目标数据库中计数器当前的数据同步请求计数值;
同步模块,用于在所述返回值中的所述数据同步请求计数值为1时,通过所述目标程序实例从所述目标数据库进行数据同步。
本申请实施例第三方面提供了一种电子装置,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,实现上述本申请实施例第一方面提供的数据同步方法中的各步骤。
本申请实施例第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,实现上述本申请实施例第一方面提供的数据同步方法中的各步骤。
由上可见,根据本申请方案所提供的数据同步方法、装置及计算机可读存储介质,控制目标程序实例向目标数据库发送数据同步请求;接收目标数据库基于数据同步请求所响应的包括数据同步请求计数值的返回值;在返回值中的数据同步请求计数值为1时,通过目标程序实例从目标数据库进行数据同步。通过本申请方案的实施,控制程序实例在数据库响应的数据同步请求计数值为1时才进行数据同步,从而使得其它程序实例所重复进行的数据同步请求无效,有效降低了服务器资源占用,提升了服务器资源的有效利用率。
附图说明
图1为本申请第一实施例提供的数据同步方法的基本流程示意图;
图2为本申请第一实施例提供的一种数据同步请求的发送方法的流程示意图;
图3为本申请第一实施例提供的另一种数据同步请求的发送方法的流程示意图;
图4为本申请第二实施例提供的数据同步方法的细化流程示意图;
图5为本申请第三实施例提供的一种数据同步装置的程序模块示意图;
图6为本申请第三实施例提供的另一种数据同步装置的程序模块示意图;
图7为本申请第四实施例提供的电子装置的结构示意图。
具体实施方式
为使得本申请的发明目的、特征、优点能够更加的明显和易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而非全部实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了解决相关技术中多个程序实例会同时执行相同的数据同步事件,所导致的服务器资源占用较为严重以及服务器资源的有效利用率较低的技术问题,本申请第一实施例提供了一种数据同步方法,如图1为本实施例提供的数据同步方法的基本流程图,该数据同步方法包括以下的步骤:
步骤101、控制目标程序实例向目标数据库发送数据同步请求。
具体的,在本实施例中,程序实例也可称为应用实例,可以同时部署在多台服务器上运行,而数据库在优选的实施方式中可以为远程字典服务(Redis,Remote DictionaryServer)数据库,是一个高读写性能的key-value数据库,本实施例的服务器上的程序实例向数据库发送数据同步请求以请求进行数据同步,而将目标数据库上的特定数据写入至待同步数据库。
在本实施例一种可选的实施方式中,在控制目标程序实例向目标数据库发送数据同步请求之前,还包括:判断当前是否满足预设的数据同步条件;若是,则执行控制目标程序实例向目标数据库发送数据同步请求的步骤。
具体的,在本实施例中,为了保证数据同步有序的进行,在满足预设数据同步条件时触发程序实例向数据库发送数据同步请求。
步骤102、接收目标数据库基于数据同步请求所响应的返回值。
具体的,在本实施例中,返回值包括目标数据库中计数器当前的数据同步请求计数值。以数据库为Redis数据库为例,程序实例在向Redis数据库发送数据同步请求之后,会调用Redis数据库上的INCR KEY_NAME方法,该方法可以理解为一个递增函数,而向Redis数据库发送INCR命令,对本次数据同步请求行为进行计数,应当说明的是,当KEY_NAME不存在时,INCR命令将先创建KEY_NAME,并且设置其值为初始值0,然后再对其值加1,如果KEY_NAME存在,则INCR直接在该值的基础上加1。
步骤103、在返回值中的数据同步请求计数值为1时,通过目标程序实例从目标数据库进行数据同步。
具体的,在本实施例中,由于在一个时段内仅允许一个程序实例进行数据同步,从而本实施例将数据同步请求计数值限制为1,仅在程序实例请求时的返回值为1才允许该程序实例将目标数据库的数据同步至其它数据库,而若程序实例请求时的返回值大于1,则说明当前已经有其它程序实例成功请求过一次数据同步,当前所进行的请求则为重复请求,而不允许该程序实例进行数据同步,降低服务器的资源占用,提升服务器资源的有效利用率。应当理解的是,本实施例向数据库发送请求所获取的返回值非1时不允许进行数据同步,类似于一种排它访问机制,在允许返回值为1的程序实例进行数据同步时,排斥其它返回值非1的程序实例的数据同步尝试。
在本实施例一种可选的实施方式中,在控制目标程序实例向目标数据库发送数据同步请求之前,还包括:接收目标数据库发送的计数器过期指示;其中,计数器过期指示用于指示目标数据库在预设过期时长内所使用的计数器已过期,并已重新配置数据同步请求计数值为0的计数器。相对应的,控制目标程序实例向目标数据库发送数据同步请求包括:基于计数器过期指示控制目标程序实例向目标数据库发送数据同步请求。
具体的,在本实施例中,目标数据库中内置有对数据同步请求的次数进行计数的计数器,并且该计数器设置有一个过期时长,也即该计数器仅在该过期时长内执行一次有效计数,而若该计数器的过期时长到达之后,数据库会重新进行计数器配置,其中可以是对旧计数器进行计数值的归零,也可以是采用一个新计数器对计数完成的旧计数器进行替换,重新配置计数器之后意味着上一次数据同步已完成,可重新开始新一轮的数据同步,由于重新配置计数器之后计数器的计数值为初始计数值0,可以允许程序实例进行有效数据同步,从而基于该计数器过期指示触发程序实例向数据库发送数据同步请求。
应当说明的是,在实际应用中,由于程序实例会发生运行故障,而导致无法继续数据同步,而在实际应用中为了保证数据同步仍旧可以正常运行,目前通常需要专业人员人工指定另外一个有效的、可用的程序实例来进行程序同步,操作复杂度较为复杂,流程较为繁冗。而本实施例由于计数器设置有过期时长,从而在计数器过期而重置计数器之后,可以向其它可用程序实例提供有效数据同步的机会,而在其它任一可用程序实例得到的返回值为1时,即可继续实现数据同步。
本实施例继续以数据库为Redis数据库为例对计数器的计数时长进行说明,程序实例调用Redis数据库上的EXPIRE KEY_NAME方法,而向Redis数据库发送INCR命令,设置KEY_NAME的过期时长为特定时长,从而在特定时长过后,KEY_NAME将会被Redis数据库删除,重置后的KEY_NAME的值为0,从而其它程序实例下一次同步时,使用INCR KEY_NAME方法得到的值将可以是1,可继续实现数据同步。
进一步地,在本实施例一种可选的实施方式中,基于计数器过期指示控制目标程序实例向目标数据库发送数据同步请求包括:获取发送数据同步请求的间隔时长,其中,间隔时长大于或等于过期时长;在接收到计数器过期指示且间隔时长到达时,控制目标程序实例向目标数据库发送数据同步请求。
具体的,在本实施例中,可以对相邻两次数据同步之间进行特定间隔时长的设置,从而程序实例每隔特定间隔时长同步一次数据,本实施例对数据同步间隔时长进行实时监控,在计数器重置且间隔时长到达时,触发新一轮数据同步尝试。应当说明的是,本实施例的过期时长应当大于预设的时长阈值,是出于若过期时长设置的过短,一方面会导致数据同步在该过期时长内未能完成,另一方面会由于各个服务器之间的时钟不同步,可能会导致多个程序实例同时进行数据同步的情况;此外,本实施例的过期时长不能超过数据同步间隔时长,因此每隔该间隔时长同步一次数据,若过期时长超过数据同步间隔时长,那么程序实例下一次进行数据同步尝试时,所得到的返回值将不会是1,导致无法同步数据。
更进一步地,在本实施例一种可选的实施方式中,在获取发送数据同步请求的间隔时长之前,还包括:获取在预设历史时间周期内进行数据同步时的数据同步属性;基于数据同步属性确定间隔时长。
具体的,间隔时长为前一次进行有效数据同步的时刻与数据库进行计时器重置之后首次触发数据同步请求的时刻之间的时间间隔,在实际应用中,该数据同步间隔时长可以为预先设定的时长,也可以为实时动态确定的时长。在本实施例中,为了保证数据同步行为与实际应用场景的适应性,基于此前预设时段的数据同步属性来确定当前的数据同步间隔时长,这里的数据同步属性关联于同步的数据量、同步的耗时等,从而参考历史数据同步行为来动态调整数据同步间隔时长,保证了每次数据同步的触发更为合理。例如此前一段时间进行数据同步时的数据量较大,说明近期数据库的数据量突增,则为了降低服务器单次数据同步的负荷,则可以缩短数据同步间隔时长,使得数据同步频率增高,每次所需同步的数据量则可以有所降低,可有效减轻服务次单次数据同步的负荷。
如图2所示为本实施例提供的一种数据同步请求的发送方法的流程示意图,进一步地,在本实施例一种可选的实施方式中,控制目标程序实例向目标数据库发送数据同步请求具体包括以下步骤:
步骤201、获取交替进行数据同步的多个可用程序实例的交替顺序;
步骤202、基于交替顺序以及前一次进行数据同步的程序实例,确定当前所需进行数据同步的目标程序实例;
步骤203、控制所确定的目标程序实例向目标数据库发送数据同步请求。
具体的,在实际应用中,可以轮流触发各个程序实例同步数据,如先通过实例1同步数据,然后经过一个数据同步间隔时长之后,通过实例2进行同步数据,再经过一个数据同步间隔时长之后,通过实例3进行同步数据,从而各程序实例按照既定的顺序轮流同步数据,可以保证数据同步有条不紊的持续推进。本实施例基于交替顺序及前一次进行数据同步的程序实例确定目标程序实例,例如交替顺序依次为实例1、实例2、实例3,若上一次是实例2进行的数据同步,那么当前进行数据同步的目标程序实例则是实例3。
如图3所示为本实施例提供的另一种数据同步请求的发送方法的流程示意图,进一步地,在本实施例一种可选的实施方式中,控制目标程序实例向目标数据库发送数据同步请求具体包括以下步骤:
步骤301、分别获取各可用程序实例的剩余资源;
步骤302、将所获取的所有剩余资源进行比较,并根据比较结果确定剩余资源最多的可用程序实例作为目标程序实例;
步骤303、控制所确定的目标程序实例向目标数据库发送数据同步请求。
具体的,在实际应用中,可以动态的对每次进行数据同步的程序实例进行确定。本实施例考虑到不同程序实例的数据同步性能有所差异,从而在每次进行数据同步之前,将所有可用程序实例进行剩余资源比较,这里的剩余资源包括但不限于CPU和内存资源,并将剩余资源最为丰富的程序实例确定为目标程序实例,以通过该程序实例保证较为优异的数据同步性能。
在本实施例一种可选的实施方式中,在通过目标程序实例从目标数据库进行数据同步之后,还包括:在接收到对应于目标程序实例的同步失败指示时,向目标数据库发送计数值回退指令;在接收到目标数据库发送的计数值回退完成响应时,从多个可用程序实例中重新确定目标程序实例,然后重新执行控制目标程序实例向目标数据库发送数据同步请求的步骤。
具体的,本实施例的计数值回退指令用于指示目标数据库将计数器当前的数据同步请求计数值回退至0。在实际应用中,尽管程序实例向数据库请求数据同步成功,但是出于程序实例在数据同步之前或数据同步之中发生运行故障,而导致数据同步失败,基于此,本实施例设置了一数据同步救济措施,也即在当前程序实例数据同步失败时,由于数据库的计数器被置1而使得数据同步机会已经被当前程序实例占用,从而本实施例将基于该同步失败指示向数据库发送计数值回退指令,使得数据库的计数器被置0,而使得数据库允许被其它程序实例进行数据同步,然后再从多个可用程序实例中重新确定一程序实例向数据库请求数据同步,以及时补救此前程序实例的数据同步失败行为。
基于上述本申请实施例的技术方案,控制目标程序实例向目标数据库发送数据同步请求;接收目标数据库基于数据同步请求所响应的包括数据同步请求计数值的返回值;在返回值中的数据同步请求计数值为1时,通过目标程序实例从目标数据库进行数据同步。通过本申请方案的实施,控制程序实例在数据库响应的数据同步请求计数值为1时才进行数据同步,从而使得其它程序实例所重复进行的数据同步请求无效,有效降低了服务器资源占用,提升了服务器资源的有效利用率。
图4中的方法为本申请第二实施例提供的一种细化的数据同步方法,该数据同步方法包括:
步骤401、在发送数据同步请求的间隔时长到达时,获取交替进行数据同步的多个可用程序实例的交替顺序。
在本实施例中,间隔时长为相邻两次数据同步的时刻之间的时间间隔,在实际应用中,该数据同步间隔时长可以为预先设定的时长,也可以为实时动态确定的时长。
步骤402、基于交替顺序以及前一次进行数据同步的程序实例,确定当前所需进行数据同步的目标程序实例。
具体的,本实施例轮流触发各个程序实例同步数据,各程序实例按照既定的顺序轮流同步数据,可以保证数据同步有条不紊的持续推进。当然,在实际应用中也可以在每次需要进行数据同步时,实时对目标程序实例进行确定。
步骤403、控制所确定的目标程序实例向目标数据库发送数据同步请求。
在本实施例中,数据库在优选的实施方式中可以为远程字典服务(Redis,RemoteDictionary Server)数据库,是一个高读写性能的key-value数据库。
步骤404、接收目标数据库基于数据同步请求所响应的返回值。
在本实施例中,返回值包括目标数据库中计数器在过期时间内所累积的数据同步请求计数值,在过期时间到达时,所使用的计数器将失效,数据库将重新配置计数器,其中,重新配置计数器可以是对旧计数器进行计数值的归零,也可以是采用一个新计数器对计数完成的旧计数器进行替换。
步骤405、在返回值中的数据同步请求计数值为1时,通过目标程序实例从目标数据库进行数据同步。
在本实施例中,由于在一个时段内仅允许一个程序实例进行数据同步,从而本实施例将数据同步请求计数值限制为1,仅在程序实例请求时的返回值为1才允许该程序实例进行数据同步,而若程序实例请求时的返回值大于1,则说明当前已经有其它程序实例成功请求过一次数据同步,当前所进行的请求则为重复请求,而不允许该程序实例进行数据同步,降低服务器的资源占用,提升服务器资源的有效利用率。
步骤406、在接收到对应于目标程序实例的同步失败指示时,向目标数据库发送计数值回退指令。
在本实施例中,计数值回退指令用于指示目标数据库将计数器当前的数据同步请求计数值回退至0;本实施例设置了一数据同步救济措施,也即在当前程序实例数据同步失败时,由于数据库的计数器被置1而使得数据同步权限已经被当前程序实例占用,从而本实施例将基于该同步失败指示向数据库发送计数值回退指令,使得数据库的计数器被置0,而使得数据库允许被其它程序实例进行数据同步。
步骤407、在接收到目标数据库发送的计数值回退完成响应时,从多个可用程序实例中重新确定目标程序实例;然后返回执行步骤403。
本实施例在数据库重新允许新的程序实例进行数据同步之后,从多个可用程序实例中重新确定一程序实例向数据库请求数据同步,以及时补救此前程序实例的数据同步失败行为。
应当理解的是,本实施例中各步骤的序号的大小并不意味着步骤执行顺序的先后,各步骤的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成唯一限定。
本申请实施例公开了一种数据同步方法,在发送数据同步请求的间隔时长到达时,控制目标程序实例向目标数据库发送数据同步请求;接收目标数据库基于数据同步请求所响应的包括数据同步请求计数值的返回值;在返回值中的数据同步请求计数值为1时,通过目标程序实例从目标数据库进行数据同步;在接收到对应于目标程序实例的同步失败指示时,向目标数据库发送计数值回退指令;在接收到目标数据库发送的计数值回退完成响应时,从多个可用程序实例中重新确定目标程序实例,然后重新控制目标程序实例向目标数据库发送数据同步请求。通过本申请方案的实施,控制程序实例在数据库响应的数据同步请求计数值为1时才进行数据同步,从而使得其它程序实例所重复进行的数据同步请求无效,有效降低了服务器资源占用,提升了服务器资源的有效利用率,并且在数据同步失败时,指示数据库回退计数器的计数值,然后控制重新确定的目标程序实例向数据库再次请求数据同步,有效保证了数据同步的成功率和有效性。
图5为本申请第三实施例提供的一种数据同步装置。该数据同步装置可用于实现前述实施例中的数据同步方法。如图5所示,该数据同步装置主要包括:
控制模块501,用于控制目标程序实例向目标数据库发送数据同步请求;
接收模块502,用于接收目标数据库基于数据同步请求所响应的返回值;其中,返回值包括目标数据库中计数器当前的数据同步请求计数值;
同步模块503,用于在返回值中的数据同步请求计数值为1时,通过目标程序实例从目标数据库进行数据同步。
在本实施例一种可选的实施方式中,控制模块501具体用于:获取交替进行数据同步的多个可用程序实例的交替顺序;基于交替顺序以及前一次进行数据同步的程序实例,确定当前所需进行数据同步的目标程序实例;控制所确定的目标程序实例向目标数据库发送数据同步请求。
在本实施例一种可选的实施方式中,控制模块501具体用于:分别获取各可用程序实例的剩余资源;将所获取的所有剩余资源进行比较,并根据比较结果确定剩余资源最多的可用程序实例作为目标程序实例;控制所确定的目标程序实例向目标数据库发送数据同步请求。
如图6所示为本实施例提供的另一种数据同步装置,在本实施例一种可选的实施方式中,数据同步装置还包括:发送模块504和确定模块505,发送模块504用于在通过目标程序实例从目标数据库进行数据同步之后,在接收到对应于目标程序实例的同步失败指示时,向目标数据库发送计数值回退指令;其中,计数值回退指令用于指示目标数据库将计数器当前的数据同步请求计数值回退至0。相应的,确定模块505用于在接收到目标数据库发送的计数值回退完成响应时,从多个可用程序实例中重新确定目标程序实例,然后返回至控制模块501执行其功能。
在本实施例一种可选的实施方式中,接收模块502还用于在控制目标程序实例向目标数据库发送数据同步请求之前,接收目标数据库发送的计数器过期指示;其中,计数器过期指示用于指示目标数据库在预设过期时长内所使用的计数器已过期,并已重新配置数据同步请求计数值为0的计数器。相应的,控制模块501具体用于:基于计数器过期指示控制目标程序实例向目标数据库发送数据同步请求。
进一步地,在本实施例一种可选的实施方式中,控制模块501具体用于:获取发送数据同步请求的间隔时长,其中,间隔时长大于或等于过期时长;在接收到计数器过期指示且间隔时长到达时,控制目标程序实例向目标数据库发送数据同步请求。
更进一步地,在本实施例一种可选的实施方式中,控制模块501在获取发送数据同步请求的间隔时长时,具体用于:获取在预设历史时间周期内进行数据同步时的数据同步属性;基于数据同步属性确定间隔时长。
应当说明的是,第一、二实施例中的数据同步方法均可基于本实施例提供的数据同步装置实现,所属领域的普通技术人员可以清楚的了解到,为描述的方便和简洁,本实施例中所描述的数据同步装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
根据本实施例所提供的数据同步装置,控制目标程序实例向目标数据库发送数据同步请求;接收目标数据库基于数据同步请求所响应的包括数据同步请求计数值的返回值;在返回值中的数据同步请求计数值为1时,通过目标程序实例从目标数据库进行数据同步。通过本申请方案的实施,控制程序实例在数据库响应的数据同步请求计数值为1时才进行数据同步,从而使得其它程序实例所重复进行的数据同步请求无效,有效降低了服务器资源占用,提升了服务器资源的有效利用率。
请参阅图7,图7为本申请第四实施例提供的一种电子装置。该电子装置可用于实现前述实施例中的数据同步方法。如图7所示,该电子装置主要包括:
存储器701、处理器702、总线703及存储在存储器701上并可在处理器702上运行的计算机程序,存储器701和处理器702通过总线703连接。处理器702执行该计算机程序时,实现前述实施例中的数据同步方法。其中,处理器的数量可以是一个或多个。
存储器701可以是高速随机存取记忆体(RAM,Random Access Memory)存储器,也可为非不稳定的存储器(non-volatile memory),例如磁盘存储器。存储器701用于存储可执行程序代码,处理器702与存储器701耦合。
进一步的,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是设置于上述各实施例中的电子装置中,该计算机可读存储介质可以是前述图7所示实施例中的存储器。
该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现前述实施例中的数据同步方法。进一步的,该计算机可存储介质还可以是U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的可读存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上为对本申请所提供的数据同步方法、装置及计算机可读存储介质的描述,对于本领域的技术人员,依据本申请实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种数据同步方法,其特征在于,包括:
控制目标程序实例向目标数据库发送数据同步请求;
接收所述目标数据库基于所述数据同步请求所响应的返回值;其中,所述返回值包括所述目标数据库中计数器当前的数据同步请求计数值;
在所述返回值中的所述数据同步请求计数值为1时,通过所述目标程序实例从所述目标数据库进行数据同步。
2.根据权利要求1所述的数据同步方法,其特征在于,所述控制目标程序实例向目标数据库发送数据同步请求包括:
获取交替进行数据同步的多个可用程序实例的交替顺序;
基于所述交替顺序以及前一次进行数据同步的程序实例,确定当前所需进行数据同步的目标程序实例;
控制所确定的所述目标程序实例向目标数据库发送数据同步请求。
3.根据权利要求1所述的数据同步方法,其特征在于,所述控制目标程序实例向目标数据库发送数据同步请求包括:
分别获取各可用程序实例的剩余资源;
将所获取的所有剩余资源进行比较,并根据比较结果确定剩余资源最多的可用程序实例作为目标程序实例;
控制所确定的所述目标程序实例向目标数据库发送数据同步请求。
4.根据权利要求1所述的数据同步方法,其特征在于,所述通过所述目标程序实例从所述目标数据库进行数据同步之后,还包括:
在接收到对应于所述目标程序实例的同步失败指示时,向所述目标数据库发送计数值回退指令;其中,所述计数值回退指令用于指示所述目标数据库将所述计数器当前的数据同步请求计数值回退至0;
在接收到所述目标数据库发送的计数值回退完成响应时,从多个可用程序实例中重新确定所述目标程序实例,然后执行所述控制目标程序实例向目标数据库发送数据同步请求的步骤。
5.根据权利要求1至4中任意一项所述的数据同步方法,其特征在于,所述控制目标程序实例向目标数据库发送数据同步请求之前,还包括:
接收所述目标数据库发送的计数器过期指示;其中,所述计数器过期指示用于指示所述目标数据库在预设过期时长内所使用的计数器已过期,并已重新配置所述数据同步请求计数值为0的计数器;
所述控制目标程序实例向目标数据库发送数据同步请求包括:
基于所述计数器过期指示控制目标程序实例向目标数据库发送数据同步请求。
6.根据权利要求5所述的数据同步方法,其特征在于,所述基于所述计数器过期指示控制目标程序实例向目标数据库发送数据同步请求包括:
获取发送所述数据同步请求的间隔时长;其中,所述间隔时长大于或等于所述过期时长;
在接收到所述计数器过期指示且所述间隔时长到达时,控制目标程序实例向目标数据库发送数据同步请求。
7.根据权利要求6所述的数据同步方法,其特征在于,所述获取发送所述数据同步请求的间隔时长之前,还包括:
获取在预设历史时间周期内进行数据同步时的数据同步属性;
基于所述数据同步属性确定所述间隔时长。
8.一种数据同步装置,其特征在于,包括:
控制模块,用于控制目标程序实例向目标数据库发送数据同步请求;
接收模块,用于接收所述目标数据库基于所述数据同步请求所响应的返回值;其中,所述返回值包括所述目标数据库中计数器当前的数据同步请求计数值;
同步模块,用于在所述返回值中的所述数据同步请求计数值为1时,通过所述目标程序实例从所述目标数据库进行数据同步。
9.一种电子装置,包括:存储器、处理器及总线,其特征在于,所述总线用于实现所述存储器、处理器之间的连接通信;所述处理器用于执行存储在所述存储器上的计算机程序,所述处理器执行所述计算机程序时,实现权利要求1至7中任意一项所述方法中的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求1至7中的任意一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911282623.1A CN112988881A (zh) | 2019-12-13 | 2019-12-13 | 一种数据同步方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911282623.1A CN112988881A (zh) | 2019-12-13 | 2019-12-13 | 一种数据同步方法、装置及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112988881A true CN112988881A (zh) | 2021-06-18 |
Family
ID=76332383
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911282623.1A Pending CN112988881A (zh) | 2019-12-13 | 2019-12-13 | 一种数据同步方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112988881A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113836221A (zh) * | 2021-08-21 | 2021-12-24 | 济南浪潮数据技术有限公司 | 一种分布式存储系统的数据同步方法和装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102667728A (zh) * | 2009-10-09 | 2012-09-12 | 阿玛得斯两合公司 | 具有客户机端一致性的传递 |
CN104411011A (zh) * | 2014-11-28 | 2015-03-11 | 广州杰赛科技股份有限公司 | 微型基站、时钟服务器授时、同步方法和系统 |
CN105610958A (zh) * | 2016-01-13 | 2016-05-25 | 广东欧珀移动通信有限公司 | 一种时间同步服务器的选择方法、装置及智能终端 |
CN106130972A (zh) * | 2016-06-22 | 2016-11-16 | 腾讯科技(深圳)有限公司 | 资源访问控制方法和装置 |
CN106372174A (zh) * | 2016-08-31 | 2017-02-01 | 东软集团股份有限公司 | 防止表单重复提交的方法和装置 |
CN107463588A (zh) * | 2016-06-03 | 2017-12-12 | 北京京东尚科信息技术有限公司 | 数据提交判重方法 |
CN108337301A (zh) * | 2018-01-24 | 2018-07-27 | 深圳乐信软件技术有限公司 | 应用程序的网络请求处理方法、装置、服务器及存储介质 |
CN108833512A (zh) * | 2018-05-31 | 2018-11-16 | 深圳市零度智控科技有限公司 | 数据同步方法、装置及计算机可读存储介质 |
CN109639811A (zh) * | 2018-12-21 | 2019-04-16 | 北京金山云网络技术有限公司 | 数据传输方法、数据存储方法、装置、服务器及存储介质 |
CN110502573A (zh) * | 2019-07-08 | 2019-11-26 | 威富通科技有限公司 | 一种闸机数据同步方法及服务器 |
-
2019
- 2019-12-13 CN CN201911282623.1A patent/CN112988881A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102667728A (zh) * | 2009-10-09 | 2012-09-12 | 阿玛得斯两合公司 | 具有客户机端一致性的传递 |
CN104411011A (zh) * | 2014-11-28 | 2015-03-11 | 广州杰赛科技股份有限公司 | 微型基站、时钟服务器授时、同步方法和系统 |
CN105610958A (zh) * | 2016-01-13 | 2016-05-25 | 广东欧珀移动通信有限公司 | 一种时间同步服务器的选择方法、装置及智能终端 |
CN107463588A (zh) * | 2016-06-03 | 2017-12-12 | 北京京东尚科信息技术有限公司 | 数据提交判重方法 |
CN106130972A (zh) * | 2016-06-22 | 2016-11-16 | 腾讯科技(深圳)有限公司 | 资源访问控制方法和装置 |
CN106372174A (zh) * | 2016-08-31 | 2017-02-01 | 东软集团股份有限公司 | 防止表单重复提交的方法和装置 |
CN108337301A (zh) * | 2018-01-24 | 2018-07-27 | 深圳乐信软件技术有限公司 | 应用程序的网络请求处理方法、装置、服务器及存储介质 |
CN108833512A (zh) * | 2018-05-31 | 2018-11-16 | 深圳市零度智控科技有限公司 | 数据同步方法、装置及计算机可读存储介质 |
CN109639811A (zh) * | 2018-12-21 | 2019-04-16 | 北京金山云网络技术有限公司 | 数据传输方法、数据存储方法、装置、服务器及存储介质 |
CN110502573A (zh) * | 2019-07-08 | 2019-11-26 | 威富通科技有限公司 | 一种闸机数据同步方法及服务器 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113836221A (zh) * | 2021-08-21 | 2021-12-24 | 济南浪潮数据技术有限公司 | 一种分布式存储系统的数据同步方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11397648B2 (en) | Virtual machine recovery method and virtual machine management device | |
CN104335159A (zh) | 间隔控制复制 | |
CN109032796B (zh) | 一种数据处理方法和装置 | |
CN111262726B (zh) | 一种配置信息更新方法、装置及计算机可读存储介质 | |
EP3486802A1 (en) | Global transaction identifier (gtid) synchronization method, apparatus and system, and storage medium | |
CN104954411A (zh) | 分布式系统共享网络资源的方法、终端及系统 | |
WO2021104178A1 (zh) | 一种动态消息推送方法、系统和汽车诊断服务器 | |
CN106874143A (zh) | 服务器备份方法及其备份系统 | |
CN111970339B (zh) | 请求控制方法、装置及电子设备 | |
CN110716793A (zh) | 一种分布式事务的执行方法、装置、设备及存储介质 | |
CN110417882B (zh) | 主节点的确定方法、装置和存储介质 | |
CN110377664B (zh) | 数据同步方法、装置、服务器及存储介质 | |
CN112988881A (zh) | 一种数据同步方法、装置及计算机可读存储介质 | |
CA3134297A1 (en) | Message pushing method and device thereof, computer equipment and storage medium | |
CN113703946A (zh) | 应用恢复方法及其装置、电子设备、计算机可读存储介质 | |
CN112667467A (zh) | 集群的自适应限流方法、装置、计算机设备及存储介质 | |
CN111679895A (zh) | 分布式定时任务的执行方法、装置、设备及可读存储介质 | |
CN110543357B (zh) | 管理应用程序对象的方法,相关装置及系统 | |
CN112434050B (zh) | 电网业务处理系统的数据同步方法、装置和业务处理系统 | |
CN109426563B (zh) | 一种进程管理方法及装置 | |
CN113342511A (zh) | 一种分布式任务管理系统及方法 | |
CN110908821A (zh) | 任务失败管理的方法、装置、设备和存储介质 | |
US11822436B2 (en) | Database recovery based on logical timestamp | |
CN110362431B (zh) | 一种数据备份方法及装置 | |
CN113704352A (zh) | 提高MySQL数据库可用性的方法、装置及可存储介质 |
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 |