CN115168384A - 数据一致性处理方法、装置、服务器及存储介质 - Google Patents
数据一致性处理方法、装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN115168384A CN115168384A CN202210934596.7A CN202210934596A CN115168384A CN 115168384 A CN115168384 A CN 115168384A CN 202210934596 A CN202210934596 A CN 202210934596A CN 115168384 A CN115168384 A CN 115168384A
- Authority
- CN
- China
- Prior art keywords
- task
- data
- target transaction
- compensation
- target
- 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
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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- 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
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Computing Systems (AREA)
- Economics (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Development Economics (AREA)
- Computational Linguistics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及数据处理,提供一种数据一致性处理方法、装置、服务器及存储介质,该方法包括:获取执行失败的目标事务的任务数据,并将目标事务的任务数据缓存至预设磁盘阵列;根据任务数据中的任务配置数据,从预设降级插件的降级容器中查找目标降级逻辑;基于目标降级逻辑对应的降级函数,调用预设磁盘阵列中缓存的任务数据对目标事务进行重试补偿;在检测到经过重试补偿的目标事务执行成功后,删除预设磁盘阵列中缓存的目标事务的任务数据。本申请旨在保证数据一致性的同时,还能提高系统并发能力和系统可用性。
Description
技术领域
本申请涉及数据处理的技术领域,尤其涉及一种数据一致性处理方法、装置、服务器及存储介质。
背景技术
目前,业界主流从数据一致性方案主要包括以下三种:第一,可靠消息最终一致性(MQ最终一致性)方案,利用消息中间件完成事务的一致性,事务发起方执行完成本地事务后发出一条消息,事务参与方一定能够接收消息并处理事务成功。第二,简易可扩展的自治式分布式事务管理(Simple Extensible Autonomous Transaction Architecture,SEATA)框架,通过事务协调器(TC)、事务管理器(TM)和资源管理器(RM)实现数据强一致性。第三,基于TCC(try/confirm/cancel)机制的分布式事务管理框架,通过TCC三阶段提交事务,完成分布式事务的一致性。然而在系统要求保证数据一致性时,上述的数据一致性方案容易影响系统的并发能力,导致系统并发能力严重下降,系统可用性不高。
发明内容
本申请的主要目的在于提供一种数据一致性处理方法、装置、服务器及存储介质,旨在保证数据一致性的前提下,提高系统的并发能力和可用性。
第一方面,本申请提供一种数据一致性处理方法,包括:
获取执行失败的目标事务的任务数据,并将所述目标事务的任务数据缓存至预设磁盘阵列;
根据所述任务数据中的任务配置数据,从预设降级插件的降级容器中查找目标降级逻辑;
基于所述目标降级逻辑对应的降级函数,调用所述预设磁盘阵列中缓存的所述任务数据对所述目标事务进行重试补偿;
在检测到经过重试补偿的所述目标事务执行成功后,删除所述预设磁盘阵列中缓存的所述目标事务的任务数据。
第二方面,本申请还提供一种数据一致性处理装置,所述数据一致性处理装置包括:
获取模块,用于获取执行失败的目标事务的任务数据,并将所述目标事务的任务数据缓存至预设磁盘阵列;
查找模块,用于根据所述任务数据中的任务配置数据,从预设降级插件的降级容器中查找目标降级逻辑;
补偿模块,用于基于所述目标降级逻辑对应的降级函数,调用所述预设磁盘阵列中缓存的所述任务数据对所述目标事务进行重试补偿;
删除模块,用于在检测到经过重试补偿的所述目标事务执行成功后,删除所述预设磁盘阵列中缓存的所述目标事务的任务数据。
第三方面,本申请还提供一种服务器,所述服务器包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的计算机程序,其中所述计算机程序被所述处理器执行时,实现如上所述的数据一致性处理方法的步骤。
第四方面,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其中所述计算机程序被处理器执行时,实现如上所述的数据一致性处理方法的步骤。
本申请提供一种数据一致性处理方法、装置、服务器及存储介质,本申请通过获取执行失败的目标事务的任务数据,并将目标事务的任务数据缓存至预设磁盘阵列;根据任务数据中的任务配置数据,从预设降级插件的降级容器中查找目标降级逻辑;基于目标降级逻辑对应的降级函数,调用预设磁盘阵列中缓存的任务数据对目标事务进行重试补偿;在检测到经过重试补偿的目标事务执行成功后,删除预设磁盘阵列中缓存的目标事务的任务数据。通过预设磁盘阵列中缓存的任务数据对目标事务进行重试补偿,使得系统中间环节执行失败的目标事务可以实现自动补偿,在保证数据一致性的同时,还能提高系统并发能力和系统可用性。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据一致性处理方法的步骤流程示意图;
图2为图1中的数据一致性处理方法的子步骤流程示意图;
图3为实施本实施例提供的数据一致性处理方法的一场景示意图;
图4为本申请实施例提供的一种数据一致性处理装置的示意性框图;
图5为图4中的数据一致性处理装置的子模块的示意性框图;
图6为本申请实施例提供的一种服务器的结构示意性框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。另外,虽然在装置示意图中进行了功能模块的划分,但是在某些情况下,可以以不同于装置示意图中的模块划分。
本申请实施例提供一种数据一致性处理方法、装置、服务器及存储介质。其中,该数据一致性处理方法可应用于服务器中,该服务器可以为单台的服务器,也可以为由多台服务器组成的服务器集群。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请参照图1,图1为本申请实施例提供的一种数据一致性处理方法的步骤流程示意图。
如图1所示,该数据一致性处理方法包括步骤S101至步骤S104。
步骤S101、获取执行失败的目标事务的任务数据,并将目标事务的任务数据缓存至预设磁盘阵列。
在分布式系统服务架构下,基于事件交互实现数据一致性。例如,某订单、发票、库存微服务,有一创建订单需求,在创建订单同时,要扣除商品的库存,并将发票开出,三者的数据需要保证最终一致。
示例性的,首先创建订单,将订单状态置为创建中,然后发送订单创建事件。库存系统和发票系统订阅了订单创建事件,库存系统在收到事件后,扣除库存,然后发送响应事件。发票系统在收到事件后,创建发票,然后发送响应事件。订单系统订阅了两者的响应事件,在收到库存系统和发票系统的响应事件后,根据事件消息内容得知两者都执行成功,将订单状态置为订单已创建。
因此在订单创建过程中,如果其中有一个环节出现事务执行失败而有没有及时进行数据同步,会导致数据不一致,就会引发数据混乱,导致漏单、库存错误、订单错误、无法支付、异常扣款、单据错误等问题。
在一实施例中,服务器获取执行失败的目标事务的任务数据,其中,目标事务包括多个分支事务,分支事务例如包括创建订单、锁定库存、锁定优惠券、创建发票、配送追踪、支付扣款和打印单据。目标事务的任务数据可以包括多个分支事务的任务数据,多个分支事务的任务数据比如订单创建数据、库存锁定数据、优惠券锁定数据、发票创建数据、配送追踪信息、支付扣款信息和单据信息。
在一实施例中,获取执行失败的目标事务的任务数据之后,可以将目标事务的任务数据缓存至服务器的预设磁盘阵列,从而能够提高后续调用缓存的任务数据进行数据处理的效率。其中,任务数据可以包括事件日志和业务数据,事件日志和业务数据可以在同一个事务内,保证了发送事件与业务数据的事务一致性。
在一实施例中,获取执行失败的目标事务的任务数据,包括:接收消息中间件返回的事务执行异常消息;根据事务执行异常消息确定执行失败的分支事务,并确定包括分支事务的目标事务;获取目标事务中的多个分支事务的任务数据。其中,服务器在执行事务时会向消息中间件发送试探消息(half消息),消息中间件在事务执行失败时会向服务器返回事务执行异常消息,该事务执行异常消息用于指示事务执行失败。
需要说明的是,在一事务包括多个分支事务时,若该事务是以事务方式进行的。比如分支事务包括创建订单、锁定库存和锁定优惠券,那么需要全部的分支事务执行成功才能视为该事务执行成功,否则其中一个分支事务执行失败比如锁定库存失败,视为该事务执行失败。因此,确定执行失败的分支事务对应的目标事务,并将目标事务中的多个分支事务的任务数据作为目标事务的任务数据,能够保证目标事务的任务数据的完整性,保证后续能够实现以事务方式进行的目标事务的数据一致性。
步骤S102、根据任务数据中的任务配置数据,从预设降级插件的降级容器中查找目标降级逻辑。
其中,预设降级插件与服务器的核心业务代码解耦。预设降级插件中包含降级容器,降级容器中保存有多个降级逻辑。需要说明的是,目标事务的任务数据包括任务配置数据,任务配置数据可以是自定义的预先对与目标事务适配的降级逻辑进行规则配置的。通过该任务配置数据能够确定的从降级容器中保存的多个降级逻辑中查找出与任务配置数据相适应的目标降级逻辑。需要说明的是,通过对降级容器中降级逻辑的动态化配置可以根据业务逻辑实时切换降级逻辑,从而满足业务需要,解决了现有降级方案不能动态切换,以及不能满足业务时效的不足。
在一实施例中,降级逻辑是从预设的降级逻辑配置中心同步到降级容器中的。当降级逻辑需要变更时,用户编写并上传新的降级逻辑或者切换降级逻辑到降级逻辑配置中心后,由降级逻辑配置中心发送变更通知,降级插件响应变更通知,调用同步线程,将降级逻辑的变更同步到降级容器。通过预设降级插件和降级逻辑配置中心,使降级逻辑与服务的核心业务代码解耦,使降级逻辑变更可以动态实现,不需要重新编译服务代码,能够极大提升业务时效性,并提高系统可用性。
步骤S103、基于目标降级逻辑对应的降级函数,调用预设磁盘阵列中缓存的任务数据对目标事务进行重试补偿。
其中,目标降级逻辑定义一个主逻辑函数getUserById,主逻辑函数能够触发该主逻辑的降级函数fallback。通过这样的简单定义,开发人员就可以很方便的获取触发目标事务的降级函数,通过降级函数调用预设磁盘阵列中的任务数据,并通过调用的执行失败的目标事务的任务数据,继续对目标事务进行补偿,提高系统可用性。
在一实施例中,如图2所示,步骤S103包括:子步骤S1031至子步骤S103。
子步骤S1031、调用预设的动态编译器对目标降级逻辑进行动态编译,生成目标降级逻辑对应的降级函数。
其中,编译是利用编译程序从源语音编写的源程序产生目标程序的过程,即把高级语言编写的程序翻译成计算机可执行的二进制代码。需要说明的是,动态编译是指,动态编译器在编译可执行文件时,把需要用到的对应动态链接库中的部分提取出来,链接到可执行文件中去,编译后所有代码都嵌入到宿主程序。通过这种方式,使降级函数在运行时不需要依赖于动态链接库。
其中,动态编译的可执行文件需要附带一个的动态链接库,在执行时,需要调用其对应动态链接库中的命令。优点是缩小了执行文件本身的体积,另一方面是加快了编译速度,节省了系统资源。在本实施例中,可以通过JavaCompiler或者Javasist对目标降级逻辑进行动态编译,生成目标降级逻辑对应的降级函数。Java的动态编译是在程序运行时,生成Java类的降级函数。
子步骤S1032、运行降级函数,以查询预设磁盘阵列中缓存的任务数据。
需要说明的是,服务器可以通过配置的降级函数,查询到预设磁盘阵列中缓存的目标事务的任务数据。例如,数据库出现异常,通过将目标事务的任务数据保存到磁盘上,如果目标事务执行失败(数据库定时任务失败),可以通过降级的方式,查询磁盘中保存的任务数据。
需要说明的是,基于服务器本地磁盘,能够任务数据的查询效率,实现系统的高性能、高可靠、高并发。预设磁盘阵列中缓存的任务数据可以是kv数据存储,任务数据不会丢失,并能够反复的从服务器本地磁盘里读取持久化本地的目标事务任务,反复的重试。待数据库恢复后,就可以把目标事务的任务数据投递到数据库中,实现数据一致性。
子步骤S1033、通过缓存的任务数据生成目标事务的补偿任务,并定时执行补偿任务。
需要说明的是,通过生成目标事务的补偿任务,并定时执行补偿任务,能够实现对目标事务进行重试补偿,能够提高系统吞吐量,同时支持事务和非事务,满足不同场景的使用情况,从而提高系统可用性。
在一实施例中,通过缓存的任务数据生成目标事务的补偿任务,包括:根据任务数据中的第一任务标识,确定目标事务是立即执行还是调度执行,以获取第一补偿任务;根据任务数据中的第二任务标识,确定目标事务是以事务方式执行还是以非事务方式执行,以获取第二补偿任务;根据第一补偿任务和第二补偿任务,生成目标事务的补偿任务。
需要说明的是,补偿任务包括目标事务是立即执行还是调度执行的第一补偿任务,以及包括以事务方式执行还是以非事务方式执行的第二补偿任务。目标事务预先可以定义各种执行规则,各种执行规则通过任务数据携带的第一任务标识和第二任务标识等进行体现。例如第一任务标识对应于目标事务是立即执行还是调度执行的执行规则,第二任务标识对应于目标事务是以事务方式执行还是以非事务方式执行的执行规则。其中,以事务方式执行是指目标事务中的多个分支事务具备强关联性,需要全部分支事务执行成功才能表明目标事务执行成功。以非事务方式执行是指目标事务中的多个分支事务不具备强关联性,各分支事务可以独立的执行成功,相互之间不受影响,执行失败的分支事务可以拆分重组为一个新的目标事务。
需要说明的是,第一补偿任务例如为立即执行该目标事务或者调度执行该目标事务,第二补偿任务例如为以事务方式执行该目标事务或者以非事务方式执行该目标事务。根据第一补偿任务和第二补偿任务,生成目标事务的补偿任务,便于后续定时执行补偿任务时,能够根据补偿任务中的执行规则进行执行,从而提高目标事务的执行成功率。
在一实施例中,根据第一补偿任务和第二补偿任务,生成目标事务的补偿任务之前,还包括:若第一补偿方式为立即执行目标事务,则确定目标事务是同步执行还是异步执行,以获取第三补偿任务;若第一补偿方式为调度执行目标事务,则确定调度执行任务数据的数据服务器,并根据调度执行任务数据的数据服务器获取作为第三补偿任务;根据第一补偿任务、第二补偿任务和第三补偿任务,生成目标事务的补偿任务。其中,同步执行是指以当前线程执行,异步执行是指线程池中起一个线程进行执行。该数据服务器可以从多个空闲的数据服务器中随机选取或者按照预设规则进行确定。
需要说明的是,补偿任务还可以包括第三补偿任务,在第一补偿方式为立即执行目标事务时,第三补偿任务例如为同步执行该目标事务或者异步执行该目标事务。在第一补偿方式为调度执行目标事务时,第三补偿任务例如为确定调度执行目标事务的任务数据的数据服务器,并根据数据服务器调度执行目标事务的任务。
在一实施例中,生成目标事务的补偿任务之后,定时执行补偿任务。其中,定时周期可根据实际情况进行设置,该定时周期也可根据补偿任务的执行状态进行调整,示例性的定时执行该第一补偿任务、第二补偿任务和第三补偿任务。
需要说明的是,通过定时执行补偿任务,在事务执行失败后,不需要用户通过日志或者查找数据源头,来进行人工补偿,实现数据最终一致性。通过数据服务器调度执行目标事务,能够实现数据处理的错峰、提高吞吐量、保证系统稳定性。采用异步的方式,不用强一致性的事物,保证系统有更高的并发能力,可以处理更多的请求,系统相应更快,可以满足更多请求,从而接入更多系统使用。
步骤S104、在检测到经过重试补偿的目标事务执行成功后,删除预设磁盘阵列中缓存的目标事务的任务数据。
需要说明的是,在检测到经过重试补偿的目标事务执行成功后,删除预设磁盘阵列中缓存的目标事务的任务数据,能够提高系统并发能力和系统可用性,从而使得系统可以更好的进行业务流转。
在一实施例中,在检测到经过重试补偿的目标事务执行失败后,生成目标事务的撤销指令;将撤销指令发送至多个数据服务器,撤销指令用于通知多个数据服务器同步撤销目标事务。其中,确定重试补偿的目标事务执行失败的条件包括下列的其中之一:重试目标事务达到预定次数、重试执行目标事务达到预定时长、发现异常数据,或者重试条件被强制设置为不重试直接撤销。需要说明的是,服务器通过将撤销指令发送至多个数据服务器,使得多个数据服务器能够同步撤销目标事务,极大的保证了执行失败的目标事务的数据一致性。
在一实施例中,在检测到经过重试补偿的目标事务执行失败后,还包括:基于目标事务的任务数据,生成目标事务的预警表达式;输出预警表达式,并删除预设磁盘阵列中缓存的目标事务的任务数据;其中,预警表达式用于提示用户目标事务的数据不一致。需要说明的是,如果通过降级逻辑对目标事务进行重试补偿也执行失败,可以基于目标事务的任务数据生成目标事务的预警表达式,预警表达式例如可以发送邮件或者短信的形式进行输出,例如发送邮件或者短信给对应用户。
请参照图3,图3为实施本实施例提供的数据一致性处理方法的一场景示意图。
如图3所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备。终端设备101、102、103上可以安装有各种通讯客户端应用。
服务器105能够获取终端设备101、102、103中执行失败的目标事务的任务数据,并将任务数据缓存至服务器105的预设磁盘阵列。服务器105根据任务数据中的任务配置数据,从预设降级插件的降级容器中查找目标降级逻辑,并基于目标降级逻辑对应的降级函数,调用预设磁盘阵列中缓存的任务数据对目标事务进行重试补偿,例如对目标事务发送至终端设备101、102、103进行重试。服务器105在检测到经过重试补偿的目标事务执行成功后,删除预设磁盘阵列中缓存的目标事务的任务数据。
上述实施例提供的数据一致性处理方法,通过获取执行失败的目标事务的任务数据,并将目标事务的任务数据缓存至预设磁盘阵列;根据任务数据中的任务配置数据,从预设降级插件的降级容器中查找目标降级逻辑;基于目标降级逻辑对应的降级函数,调用预设磁盘阵列中缓存的任务数据对目标事务进行重试补偿;在检测到经过重试补偿的目标事务执行成功后,删除预设磁盘阵列中缓存的目标事务的任务数据。通过预设磁盘阵列中缓存的任务数据对目标事务进行重试补偿,使得系统中间环节执行失败的目标事务可以实现自动补偿,在保证数据一致性的同时,还能提高系统并发能力和系统可用性。
需要说明的是,上述实施例提供的数据一致性处理方法同样适用于其他业务系统,如理算中心、决策中心、跟踪中心等,可以大幅度系统数据一致性能力,达到运营成本的下降,另外自动补偿方案案节省出来的人力可以做更多的事情,实现人力产能的提升,同时提升数据正确性。
请参照图4,图4为本申请实施例提供的一种数据一致性处理装置的示意性框图。
如图4所示,该数据一致性处理装置200,包括:获取模块201、查找模块202、补偿模块203和删除模块204。
获取模块201,用于获取执行失败的目标事务的任务数据,并将所述目标事务的任务数据缓存至预设磁盘阵列;
查找模块202,用于根据所述任务数据中的任务配置数据,从预设降级插件的降级容器中查找目标降级逻辑;
补偿模块203,用于基于所述目标降级逻辑对应的降级函数,调用所述预设磁盘阵列中缓存的所述任务数据对所述目标事务进行重试补偿;
删除模块204,用于在检测到经过重试补偿的所述目标事务执行成功后,删除所述预设磁盘阵列中缓存的所述目标事务的任务数据。
在一个实施例中,如图5所示,补偿模块203包括:
生成子模块2031,用于调用预设的动态编译器对所述目标降级逻辑进行动态编译,生成所述目标降级逻辑对应的降级函数;
查询子模块2032,用于运行所述降级函数,以查询所述预设磁盘阵列中缓存的所述任务数据;
执行子模块2033,用于通过缓存的所述任务数据生成所述目标事务的补偿任务,并定时执行所述补偿任务。
在一个实施例中,补偿模块203还用于:
根据所述任务数据中的第一任务标识,确定所述目标事务是立即执行还是调度执行,以获取第一补偿任务;
根据所述任务数据中的第二任务标识,确定所述目标事务是以事务方式执行还是以非事务方式执行,以获取第二补偿任务;
根据所述第一补偿任务和第二补偿任务,生成所述目标事务的补偿任务。
在一个实施例中,补偿模块203还用于:
若所述第一补偿方式为立即执行所述目标事务,则确定所述目标事务是同步执行还是异步执行,得到第三补偿任务;
若所述第一补偿方式为调度执行所述目标事务,则确定调度执行所述任务数据的数据服务器,并将所述数据服务器作为第三补偿任务;
根据所述第一补偿任务、第二补偿任务和所述第三补偿任务,生成所述目标事务的补偿任务。
在一个实施例中,数据一致性处理装置200还包括撤销模块,撤销模块用于:
在检测到经过重试补偿的所述目标事务执行失败后,生成所述目标事务的撤销指令;
将所述撤销指令发送至多个数据服务器,所述撤销指令用于通知所述多个数据服务器同步撤销所述目标事务。
在一个实施例中,撤销模块还用于:
基于所述目标事务的任务数据,生成所述目标事务的预警表达式;
输出所述预警表达式,并删除所述预设磁盘阵列中缓存的所述目标事务的任务数据;其中,所述预警表达式用于提示用户所述目标事务的数据不一致。
在一个实施例中,获取模块201还用于:
接收消息中间件返回的事务执行异常消息;
根据所述事务执行异常消息确定执行失败的分支事务,并确定包括所述分支事务的目标事务;
获取所述目标事务中的多个分支事务的任务数据。
需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和各模块及单元的具体工作过程,可以参考前述数据一致性处理方法实施例中的对应过程,在此不再赘述。
上述实施例提供的装置可以实现为一种计算机程序的形式,该计算机程序可以在如图6所示的服务器上运行。
请参阅图6,图6为本申请实施例提供的一种服务器的结构示意性框图。
如图6所示,该服务器包括通过系统总线连接的处理器、存储器和网络接口,其中,存储器可以包括存储介质和内存储器,存储介质可以是非易失性的,也可以是易失性的。
存储介质可存储操作系统和计算机程序。该计算机程序包括程序指令,该程序指令被执行时,可使得处理器执行任意一种数据一致性处理方法。
处理器用于提供计算和控制能力,支撑整个服务器的运行。
内存储器为存储介质中的计算机程序的运行提供环境,该计算机程序被处理器执行时,可使得处理器执行任意一种数据一致性处理方法。
该网络接口用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的服务器的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
应当理解的是,处理器可以是中央处理单元(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
其中,在一个实施例中,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:
获取执行失败的目标事务的任务数据,并将所述目标事务的任务数据缓存至预设磁盘阵列;
根据所述任务数据中的任务配置数据,从预设降级插件的降级容器中查找目标降级逻辑;
基于所述目标降级逻辑对应的降级函数,调用所述预设磁盘阵列中缓存的所述任务数据对所述目标事务进行重试补偿;
在检测到经过重试补偿的所述目标事务执行成功后,删除所述预设磁盘阵列中缓存的所述目标事务的任务数据。
在一个实施例中,所述处理器在实现所述基于所述目标降级逻辑对应的降级函数,调用所述预设磁盘阵列中缓存的所述任务数据对所述目标事务进行重试补偿时,用于实现:
调用预设的动态编译器对所述目标降级逻辑进行动态编译,生成所述目标降级逻辑对应的降级函数;
运行所述降级函数,以查询所述预设磁盘阵列中缓存的所述任务数据;
通过缓存的所述任务数据生成所述目标事务的补偿任务,并定时执行所述补偿任务。
在一个实施例中,所述处理器在实现所述通过缓存的所述任务数据生成所述目标事务的补偿任务时,用于实现:
根据所述任务数据中的第一任务标识,确定所述目标事务是立即执行还是调度执行,以获取第一补偿任务;
根据所述任务数据中的第二任务标识,确定所述目标事务是以事务方式执行还是以非事务方式执行,以获取第二补偿任务;
根据所述第一补偿任务和第二补偿任务,生成所述目标事务的补偿任务。
在一个实施例中,所述处理器在实现所述根据所述第一补偿任务和第二补偿任务,生成所述目标事务的补偿任务之前,还用于实现:
若所述第一补偿方式为立即执行所述目标事务,则确定所述目标事务是同步执行还是异步执行,以获取第三补偿任务;
若所述第一补偿方式为调度执行所述目标事务,则确定调度执行所述任务数据的数据服务器,并根据调度执行所述任务数据的数据服务器获取第三补偿任务;
根据所述第一补偿任务、第二补偿任务和所述第三补偿任务,生成所述目标事务的补偿任务。
在一个实施例中,所述处理器还用于实现:
在检测到经过重试补偿的所述目标事务执行失败后,生成所述目标事务的撤销指令;
将所述撤销指令发送至多个数据服务器,所述撤销指令用于通知所述多个数据服务器同步撤销所述目标事务。
在一个实施例中,所述处理器在实现所述在检测到经过重试补偿的所述目标事务执行失败后,还用于实现:
基于所述目标事务的任务数据,生成所述目标事务的预警表达式;
输出所述预警表达式,并删除所述预设磁盘阵列中缓存的所述目标事务的任务数据;其中,所述预警表达式用于提示用户所述目标事务的数据不一致。
在一个实施例中,所述处理器在实现所述获取执行失败的目标事务的任务数据时,用于实现:
接收消息中间件返回的事务执行异常消息;
根据所述事务执行异常消息确定执行失败的分支事务,并确定包括所述分支事务的目标事务;
获取所述目标事务中的多个分支事务的任务数据。
需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述服务器的具体工作过程,可以参考前述数据一致性处理方法实施例中的对应过程,在此不再赘述。
本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序中包括程序指令,所述程序指令被执行时所实现的方法可参照本申请数据一致性处理方法的各个实施例。
其中,所述计算机可读存储介质可以是前述实施例所述的服务器的内部存储单元,例如所述服务器的硬盘或内存。所述计算机可读存储介质也可以是所述服务器的外部存储设备,例如所述服务器上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
进一步地,所述计算机可用存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种数据一致性处理方法,其特征在于,包括:
获取执行失败的目标事务的任务数据,并将所述目标事务的任务数据缓存至预设磁盘阵列;
根据所述任务数据中的任务配置数据,从预设降级插件的降级容器中查找目标降级逻辑;
基于所述目标降级逻辑对应的降级函数,调用所述预设磁盘阵列中缓存的所述任务数据对所述目标事务进行重试补偿;
在检测到经过重试补偿的所述目标事务执行成功后,删除所述预设磁盘阵列中缓存的所述目标事务的任务数据。
2.如权利要求1所述的数据一致性处理方法,其特征在于,所述基于所述目标降级逻辑对应的降级函数,调用所述预设磁盘阵列中缓存的所述任务数据对所述目标事务进行重试补偿,包括:
调用预设的动态编译器对所述目标降级逻辑进行动态编译,生成所述目标降级逻辑对应的降级函数;
运行所述降级函数,以查询所述预设磁盘阵列中缓存的所述任务数据;
通过缓存的所述任务数据生成所述目标事务的补偿任务,并定时执行所述补偿任务。
3.如权利要求2所述的数据一致性处理方法,其特征在于,所述通过缓存的所述任务数据生成所述目标事务的补偿任务,包括:
根据所述任务数据中的第一任务标识,确定所述目标事务是立即执行还是调度执行,以获取第一补偿任务;
根据所述任务数据中的第二任务标识,确定所述目标事务是以事务方式执行还是以非事务方式执行,以获取第二补偿任务;
根据所述第一补偿任务和第二补偿任务,生成所述目标事务的补偿任务。
4.如权利要求3所述的数据一致性处理方法,其特征在于,所述根据所述第一补偿任务和第二补偿任务,生成所述目标事务的补偿任务之前,还包括:
若所述第一补偿方式为立即执行所述目标事务,则确定所述目标事务是同步执行还是异步执行,以获取第三补偿任务;
若所述第一补偿方式为调度执行所述目标事务,则确定调度执行所述任务数据的数据服务器,并根据调度执行所述任务数据的数据服务器获取第三补偿任务;
根据所述第一补偿任务、第二补偿任务和所述第三补偿任务,生成所述目标事务的补偿任务。
5.如权利要求1-4中任一项所述的数据一致性处理方法,其特征在于,所述方法还包括:
在检测到经过重试补偿的所述目标事务执行失败后,生成所述目标事务的撤销指令;
将所述撤销指令发送至多个数据服务器,所述撤销指令用于通知所述多个数据服务器同步撤销所述目标事务。
6.如权利要求5所述的数据一致性处理方法,其特征在于,所述在检测到经过重试补偿的所述目标事务执行失败后,还包括:
基于所述目标事务的任务数据,生成所述目标事务的预警表达式;
输出所述预警表达式,并删除所述预设磁盘阵列中缓存的所述目标事务的任务数据;其中,所述预警表达式用于提示用户所述目标事务的数据不一致。
7.如权利要求1-4中任一项所述的数据一致性处理方法,其特征在于,所述获取执行失败的目标事务的任务数据,包括:
接收消息中间件返回的事务执行异常消息;
根据所述事务执行异常消息确定执行失败的分支事务,并确定包括所述分支事务的目标事务;
获取所述目标事务中的多个分支事务的任务数据。
8.一种数据一致性处理装置,其特征在于,所述数据一致性处理装置包括:
获取模块,用于获取执行失败的目标事务的任务数据,并将所述目标事务的任务数据缓存至预设磁盘阵列;
查找模块,用于根据所述任务数据中的任务配置数据,从预设降级插件的降级容器中查找目标降级逻辑;
补偿模块,用于基于所述目标降级逻辑对应的降级函数,调用所述预设磁盘阵列中缓存的所述任务数据对所述目标事务进行重试补偿;
删除模块,用于在检测到经过重试补偿的所述目标事务执行成功后,删除所述预设磁盘阵列中缓存的所述目标事务的任务数据。
9.一种服务器,其特征在于,所述服务器包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的计算机程序,其中所述计算机程序被所述处理器执行时,实现如权利要求1至7中任一项所述的数据一致性处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,其中所述计算机程序被处理器执行时,实现如权利要求1至7中任一项所述的数据一致性处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210934596.7A CN115168384A (zh) | 2022-08-04 | 2022-08-04 | 数据一致性处理方法、装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210934596.7A CN115168384A (zh) | 2022-08-04 | 2022-08-04 | 数据一致性处理方法、装置、服务器及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115168384A true CN115168384A (zh) | 2022-10-11 |
Family
ID=83479975
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210934596.7A Pending CN115168384A (zh) | 2022-08-04 | 2022-08-04 | 数据一致性处理方法、装置、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115168384A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116225724A (zh) * | 2023-05-09 | 2023-06-06 | 云筑信息科技(成都)有限公司 | 一种基于内存实现分布式重试调度的方法 |
-
2022
- 2022-08-04 CN CN202210934596.7A patent/CN115168384A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116225724A (zh) * | 2023-05-09 | 2023-06-06 | 云筑信息科技(成都)有限公司 | 一种基于内存实现分布式重试调度的方法 |
CN116225724B (zh) * | 2023-05-09 | 2023-08-22 | 云筑信息科技(成都)有限公司 | 一种基于内存实现分布式重试调度的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20140181831A1 (en) | DEVICE AND METHOD FOR OPTIMIZATION OF DATA PROCESSING IN A MapReduce FRAMEWORK | |
US20170093988A1 (en) | Workflow service using state transfer | |
US7849156B2 (en) | Method, apparatus and computer program product for discovering and prioritizing patterns of component usage in a virtual application container for enhancing prefetching | |
US8499298B2 (en) | Multiprocessing transaction recovery manager | |
CN104423960A (zh) | 一种项目持续集成的方法及系统 | |
CN110096522B (zh) | 一种支持关系型检索的区块链数据处理方法、装置及设备 | |
CN113254445B (zh) | 实时数据存储方法、装置、计算机设备及存储介质 | |
US11018860B2 (en) | Highly available and reliable secret distribution infrastructure | |
US6779028B1 (en) | System application management method and system, and storage medium which stores program for executing system application management | |
CN111988429A (zh) | 算法调度方法以及系统 | |
CN112948498A (zh) | 一种分布式系统全局标识的生成方法和装置 | |
CN115168384A (zh) | 数据一致性处理方法、装置、服务器及存储介质 | |
CN111666144A (zh) | 批处理任务执行方法、系统以及机房部署系统 | |
CN111752961A (zh) | 一种数据处理方法及装置 | |
CN107678856B (zh) | 一种处理业务实体中增量信息的方法及装置 | |
US20230394027A1 (en) | Transaction execution method, computing device, and storage medium | |
CN112015563A (zh) | 消息队列切换方法、装置、电子设备及存储介质 | |
CN113590643B (zh) | 基于双轨数据库的数据同步方法、装置、设备和存储介质 | |
CN115309421A (zh) | 单点系统的静态变量同步方法、装置、设备及存储介质 | |
CN116974983A (zh) | 数据处理方法、装置、计算机可读介质及电子设备 | |
CN114168607A (zh) | 全局序列号生成方法、装置、设备、介质和产品 | |
CN115964061A (zh) | 插件更新方法、装置、电子设备和计算机可读存储介质 | |
CN113760469A (zh) | 分布式计算的方法和装置 | |
KR20170130911A (ko) | Dds-dbms 연동 도구의 실시간 변경 데이터 발간 서비스 수행 방법 | |
CN112182003A (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 |