一种保持数据一致性的方法、装置及系统制造方法及图纸

技术编号:27935520 阅读:12 留言:0更新日期:2021-04-02 14:15
本申请提供了一种保持数据一致性的方法、装置及系统,其中,方法包括:针对需要第一服务设备协同第二服务设备操作的联机交易,若第一服务设备操作成功,但第二服务设备操作失败,则第一服务设备在流水表中记录联机交易的异常流水,在预设的补偿时段,第一服务设备从流水表中筛选待补偿的异常流水,组成目标异常流水集合,根据目标异常流水集合中各异常流水和第一服务设备对应的第一数据库中的当前交易操作数据,在补偿文件中写入补偿数据,第二服务设备根据补偿文件对其对应的第二数据库进行数据补偿,经由上述方法,可使分布式系统中的第二服务设备对应的第二数据库中的数据与该分布式系统中的第一服务设备对应的第一数据库中的数据保持一致。

【技术实现步骤摘要】
一种保持数据一致性的方法、装置及系统
本申请涉及数据处理
,尤其涉及一种保持数据一致性的方法、装置、设备及系统。
技术介绍
针对包含第一服务设备和第二服务设备的分布式系统,在某些时候,其会处理一些联机交易,联机交易指的是,由第一服务设备协同第二服务设备操作的交易,该种交易一般先由第一服务设备进行操作,第一服务设备操作成功后,再由第二服务设备操作。然而,在某些时候,由于某种原因可能出现第一服务设备操作成功,但第二服务设备操作失败的情况,在这种情况下,第一服务设备对应的第一数据库(存储第一服务设备的交易操作数据)与第二服务设备对应的第二数据库(存储第二服务设备的交易操作数据)出现了数据不一致,而如何使第一服务设备对应的第一数据库与第二服务设备对应的第二数据库中的数据保持一致是当前亟需解决的问题。
技术实现思路
有鉴于此,本申请提供了一种保持数据一致性的方法、装置、设备及系统,用以使分布式系统中第一服务设备对应的第一数据库中的数据与该分布式系统中第二服务设备对应的第二数据库中的数据保持一致,其技术方案如下:一种保持数据一致性的方法,应用于分布式系统中的第一服务设备,所述方法包括:针对需要协同所述分布式系统中的第二服务设备操作的联机交易,若所述第一服务设备操作成功,但所述第二服务设备操作失败,则在流水表中记录所述联机交易的异常流水;在预设的补偿时段,顺序从所述流水表中筛选待补偿的异常流水,组成目标异常流水集合;根据所述目标异常流水集合中的各异常流水和所述第一服务设备对应的第一数据库中的当前交易操作数据,在补偿文件中写入补偿数据,以使所述第二服务设备根据所述补偿文件对其对应的第二数据库进行数据补偿。可选的,所述异常流水中记录有交易时间戳;所述从所述流水表中筛选待补偿的异常流水,包括:根据所述流水表中各异常流水中记录的交易时间戳,从所述流水表中筛选待补偿的异常流水。可选的,所述异常流水中记录有交易流水号、数据库操作类型和待补偿数据的关键字段;所述根据所述目标异常流水集合中的各异常流水和所述第一服务设备对应的第一数据库中的当前交易操作数据,在补偿文件中写入补偿数据,包括:针对所述目标异常流水集合中每个待补偿的目标异常流水:根据所述目标异常流水中记录的待补偿数据和数据库操作类型,以及所述第一数据库中的当前交易操作数据,确定是否需要在所述第二数据库中针对所述目标异常流水进行数据补偿;若是,则根据所述目标异常流水记录的数据库操作类型,以及所述第一数据库中所述目标异常流水记录的交易流水号对应的当前交易操作数据,生成第二数据库操作语句,并将所述操作语句写入补偿文件。可选的,所述根据所述目标异常流水中记录的待补偿数据和数据库操作类型,以及所述第一数据库中的当前交易操作数据,确定是否需要在所述第二数据库中针对所述目标异常流水进行数据补偿,包括:若所述目标异常流水中记录的数据库操作类型为新增,且在补偿时段所述第一数据库中的当前交易操作数据中存在所述目标异常流水中记录的待补偿数据,则确定需要在所述第二数据库中针对所述目标异常流水进行数据补偿;若所述目标异常流水中记录的数据库操作类型为删除,且在补偿时段所述第一数据库中的当前交易操作数据中不存在所述目标异常流水中记录的待补偿数据,则确定需要在所述第二数据库中针对所述目标异常流水进行数据补偿;若所述目标异常流水中记录的数据库操作类型为修改,且在补偿时段所述第一数据库中的当前交易操作数据中存在所述目标异常流水中记录的待补偿数据,则确定需要在所述第二数据库中针对所述目标异常流水进行数据补偿。可选的,所述根据所述目标异常流水记录的数据库操作类型,以及所述第一数据库中所述目标异常流水记录的交易流水号对应的最新交易操作数据,生成操作语句,包括:若所述目标异常流水中记录的数据库操作类型为新增,则根据所述第一数据库中所述目标异常流水记录的交易流水号对应的当前交易操作数据,生成插入语句;若所述目标异常流水中记录的数据库操作类型为删除,则根据所述第一数据库中所述目标异常流水记录的交易流水号对应的当前交易操作数据,生成删除语句;若所述目标异常流水中记录的数据库操作类型为修改,则根据所述第一数据库中所述目标异常流水记录的交易流水号对应的当前交易操作数据,生成修改语句。一种保持数据一致性的方法,应用于分布式系统中的第二服务设备,所述方法包括:接收所述分布式系统中的第一服务设备发送的补偿文件,其中,所述补偿文件中包括至少一条补偿数据,所述补偿数据由第一服务设备根据目标异常流水集合中的各异常流水和其对应的第一数据库中的当前交易操作数据确定,所述目标异常流水集合由所述第一服务设备从流水表中筛选出的待补偿的异常流水组成,所述异常流水为所述第一服务设备操作成功,但所述第二服务设备操作失败的联机交易的异常流水;根据所述补偿文件对所述第二服务设备对应的第二数据库进行数据补偿,以使所述第二数据库中的数据与所述第一数据库中的数据保持一致。可选的,所述据所述补偿文件对所述第二服务设备对应的第二数据库进行数据补偿,包括:根据所述补偿文件中的补偿数据生成第二数据库可执行的数据脚本;利用所述数据脚本对所述第二服务设备对应的第二数据库进行数据补偿。一种保持数据一致性的装置,应用于分布式系统中的第一服务设备,所述装置包括:异常流水记录模块、异常流水筛选模块和补偿数据确定模块;所述异常流水记录模块,用于针对需要协同所述分布式系统中的第二服务设备操作的联机交易,若所述第一服务设备操作成功,但所述第二服务设备操作失败,则在流水表中记录所述联机交易的异常流水;所述异常流水筛选模块,用于在预设的补偿时段,从所述流水表中筛选待补偿的异常流水,组成目标异常流水集合;所述补偿数据确定模块,用于根据所述目标异常流水集合中的各异常流水和所述第一服务设备对应的第一数据库中的当前交易操作数据,在补偿文件中写入补偿数据,以使所述第二服务设备根据所述补偿文件对其对应的第二数据库进行数据补偿。一种保持数据一致性的装置,应用于分布式系统中的第二服务设备,所述装置包括:补偿文件接收模块和数据补偿模块;所述补偿文件接收模块,用于接收所述分布式系统中的第一服务设备发送的补偿文件,其中,所述补偿文件中包括至少一条补偿数据,所述补偿数据由所述分布式系统中的第一服务设备根据目标异常流水集合中的各异常流水和其对应的第一数据库中的当前交易操作数据确定,所述目标异常流水集合由所述第一服务设备从流水表中筛选出的待补偿的异常流水组成,所述异常流水为所述第一服务设备操作成功,但所述第二服务设备操作失败的联机交易的异常流水;所述数据补偿模块,用于根据所述补偿文件对所述第二服务设备对应的第二数据库进行数据补偿,以使所述第二数据库中的数据与所述第一数据库中的数据保持一致。一种分布式系统,包括:第一服务设备和第二服务设备;所述第一服务设备,用本文档来自技高网...

【技术保护点】
1.一种保持数据一致性的方法,其特征在于,应用于分布式系统中的第一服务设备,所述方法包括:/n针对需要协同所述分布式系统中的第二服务设备操作的联机交易,若所述第一服务设备操作成功,但所述第二服务设备操作失败,则在流水表中记录所述联机交易的异常流水;/n在预设的补偿时段,从所述流水表中筛选待补偿的异常流水,组成目标异常流水集合;/n根据所述目标异常流水集合中的各异常流水和所述第一服务设备对应的第一数据库中的当前交易操作数据,在补偿文件中写入补偿数据,以使所述第二服务设备根据所述补偿文件对其对应的第二数据库进行数据补偿。/n

【技术特征摘要】
1.一种保持数据一致性的方法,其特征在于,应用于分布式系统中的第一服务设备,所述方法包括:
针对需要协同所述分布式系统中的第二服务设备操作的联机交易,若所述第一服务设备操作成功,但所述第二服务设备操作失败,则在流水表中记录所述联机交易的异常流水;
在预设的补偿时段,从所述流水表中筛选待补偿的异常流水,组成目标异常流水集合;
根据所述目标异常流水集合中的各异常流水和所述第一服务设备对应的第一数据库中的当前交易操作数据,在补偿文件中写入补偿数据,以使所述第二服务设备根据所述补偿文件对其对应的第二数据库进行数据补偿。


2.根据权利要求1所述的保持数据一致性的方法,其特征在于,所述异常流水中记录有交易时间戳;
所述从所述流水表中筛选待补偿的异常流水,包括:
根据所述流水表中各异常流水中记录的交易时间戳,顺序从所述流水表中筛选待补偿的异常流水。


3.根据权利要求1所述的保持数据一致性的方法,其特征在于,所述异常流水中记录有交易流水号、数据库操作类型和待补偿数据的关键字段;
所述根据所述目标异常流水集合中的各异常流水和所述第一服务设备对应的第一数据库中的当前交易操作数据,在补偿文件中写入补偿数据,包括:
针对所述目标异常流水集合中每个待补偿的目标异常流水:
根据所述目标异常流水中记录的待补偿数据和数据库操作类型,以及所述第一数据库中的当前交易操作数据,确定是否需要在所述第二数据库中针对所述目标异常流水进行数据补偿;
若是,则根据所述目标异常流水记录的数据库操作类型,以及所述第一数据库中所述目标异常流水记录的交易流水号对应的当前交易操作数据,生成操作语句,并将所述操作语句写入补偿文件。


4.根据权利要求3所述的保持数据一致性的方法,其特征在于,所述根据所述目标异常流水中记录的待补偿数据和数据库操作类型,以及所述第一数据库中的当前交易操作数据,确定是否需要在所述第二数据库中针对所述目标异常流水进行数据补偿,包括:
若所述目标异常流水中记录的数据库操作类型为新增,且在补偿执行时刻所述第一数据库中的当前交易操作数据中存在所述目标异常流水中记录的待补偿数据,则确定需要在所述第二数据库中针对所述目标异常流水进行数据补偿;
若所述目标异常流水中记录的数据库操作类型为删除,且在补偿执行时刻所述第一数据库中的当前交易操作数据中不存在所述目标异常流水中记录的待补偿数据,则确定需要在所述第二数据库中针对所述目标异常流水进行数据补偿;
若所述目标异常流水中记录的数据库操作类型为修改,且在补偿执行时段所述第一数据库中的当前交易操作数据中存在所述目标异常流水中记录的待补偿数据,则确定需要在所述第二数据库中针对所述目标异常流水进行数据补偿。


5.根据权利要求3所述的保持数据一致性的方法,其特征在于,所述根据所述目标异常流水记录的数据库操作类型,以及所述第一数据库中所述目标异常流水记录的交易流水号对应的当前交易操作数据,生成操作语句,包括:
若所述目标异常流水中记录的数据库操作类型为新增,则根据补偿时段所述第一数据库中所述目标异常流水记录的交易流水号对应的当前交易操作数据,生成插入语句;
若所述目标异常流水中记录的数据库操作类型为删除,则根据补偿时段所述第一数据库中所述目标异常流水记录的交易流水号对应的当前交易操作数据,生成删除语句;
若所述目标异常流水中记录的数据库操作类型为修改,则根据所述第一数据库中所述目标异常流水记录的交...

【专利技术属性】
技术研发人员:涂锐王宪刚邵硕
申请(专利权)人:中国农业银行股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1