在线交易系统数据一致性的方法及系统的制作方法

文档序号:10625159阅读:388来源:国知局
在线交易系统数据一致性的方法及系统的制作方法
【专利摘要】本发明实施例公开了一种在线交易系统数据一致性的方法及系统,所述方法包括:当第一子系统接收到外部系统发送的交易请求后,进行数据处理,得到第一处理结果;将第一处理结果更新至第一本地数据库,并获取第一更新时间;第一子系统向第二子系统发送业务处理请求,业务处理请求中携带有第一处理结果和第一更新时间;第二子系统根据业务处理请求进行数据处理,得到第二处理结果;将第二处理结果更新至第二本地数据库,并获取第二更新时间;第二子系统计算第二更新时间与第一更新时间之间的差值,并判断差值是否超出设定阈值,当差值超出设定阈值时,指示第二本地数据库取消第二处理结果的更新,恢复原数据。
【专利说明】
在线交易系统数据一致性的方法及系统
技术领域
[0001] 本发明涉及交易数据管理技术,尤其涉及一种在线交易系统数据一致性的方法及系统。【背景技术】
[0002] 现有的大型在线交易系统普遍使用JAVAEE的技术架构作为系统的基础架构,将应用系统分解成若干层功能相对独立的子系统,这些子系统分布于相同主机上或者不同的主机上,拥有着各自独立的进程和数据库连接会话,各子系统之间通过负载均衡器等设备进行连接。在一次交易的过程中,往往通过各子系统之间的互相调用和处理各自拥有的业务数据来完成,各自独立的完成子系统内的数据库操作。各系统的数据存储于相同的数据库或者不同的数据库中,其并非完全是完成一个交易记录,而是存在着一定的逻辑关系。
[0003] 在正常的情况下,各子系统能够按要求及时完成各自处理任务并保证在同一进程内数据库事务的一致性,要么都提交所有数据原子的修改结果,要么同时回滚恢复,在同一进程内数据一致性由成熟的数据库技术进行保障。但在异常的情况下,各子系统的处理能力并不能按预期的时间完成处理和数据的提交或者回滚,当处理时间超过系统配置的承受阀值后,上层子系统将自动中断对下层子系统的调用,进行事务回滚或者提交处理失败的记录。然而下层子系统仍然在继续正常处理自己的任务,继续提交处理结果,由此导致的各个子系统数据的差异则通过定期数据比对来解决。
[0004] 在数据比对期间,需要准备充足的硬件资源才能按要求完成,比对时间取决于足够的硬件资源和合理高效的程序算法,该过程往往需要很多的人工参与,不停地检查比对结果和进展,根据数据情况对程序进行优化、重新执行,而且往往有新的业务数据需进行比对,往往难以实现自动化的智能比对。另外,数据比对需从生产数据库抽取全量或者增量的大量数据,对实时交易系统来说无疑又增加了系统的处理负担,特别是数据库的处理能力, 响应性能将收到影响,难免又会导致新的问题。
【发明内容】

[0005]为解决上述技术问题,本发明实施例提供一种在线交易系统数据一致性的方法及系统。
[0006] 本发明实施例的技术方案是这样实现的:
[0007]—种在线交易系统数据一致性的方法,包括:
[0008] 第一子系统接收到外部系统发送的交易请求后,进行数据处理,得到第一处理结果;将所述第一处理结果更新至第一本地数据库,并获取第一更新时间;
[0009] 所述第一子系统向第二子系统发送业务处理请求,所述业务处理请求中携带有所述第一处理结果和所述第一更新时间;
[0010] 所述第二子系统根据所述业务处理请求进行数据处理,得到第二处理结果;将所述第二处理结果更新至第二本地数据库,并获取第二更新时间;
[0011]所述第二子系统计算所述第二更新时间与所述第一更新时间之间的差值,并判断所述差值是否超出设定阈值,当所述差值超出设定阈值时,指示所述第二本地数据库取消所述第二处理结果的更新,恢复原数据,并向所述第一子系统发送数据处理失败指示;当所述差值未超出设定阈值时,指示所述第二本地数据库持久化所述第二处理结果的更新,并向所述第一子系统发送数据处理成功指示;
[0012]所述第一子系统接收到数据处理失败指示后,指示所述第一本地数据库取消所述第一处理结果的更新,恢复原数据;
[0013]所述第一子系统接收到数据处理成功指示后,指示所述第一本地数据库持久化所述第一处理结果的更新。
[0014]优选地,所述方法还包括:
[0015]所述外部系统、所述第一子系统和所述第二子系统之间周期性地进行时钟同步。
[0016]优选地,所述第一更新时间包括所述第一处理结果更新至所述第一本地数据库后的时间,或所述第一处理结果更新至第一本地数据库后,从所述第一子系统的主机获取的时间;
[0017]所述第二更新时间包括所述第二处理结果更新至所述第二本地数据库后的时间, 或所述第二处理结果更新至所述第二本地数据库后,从所述第二子系统的主机获取的时间。
[0018]优选地,所述第一子系统通过COMMIT命令指示所述第一本地数据库持久化所述第一处理结果的更新;所述第一子系统通过ROLLBACK命令指示所述第一本地数据库取消所述第一处理结果的更新;
[0019]所述第二子系统通过COMMIT命令指示所述第二本地数据库持久化所述第二处理结果的更新;所述第二子系统通过ROLLBACK命令指示所述第二本地数据库取消所述第二处理结果的更新。
[0020]优选地,所述数据处理至少包括数据的新增、修改、删除。
[0021]—种在线交易系统数据一致性的系统,包括外部系统、第一子系统和第二子系统, 其特征在于,
[0022]外部系统,用于向所述第一子系统发送交易请求;
[0023]第一子系统,用于接收到外部系统发送的交易请求后,进行数据处理,得到第一处理结果;将所述第一处理结果更新至第一本地数据库,并获取第一更新时间;以及,
[0024]向第二子系统发送业务处理请求,所述业务处理请求中携带有所述第一处理结果和所述第一更新时间;
[0025]所述第二子系统,用于根据所述业务处理请求进行数据处理,得到第二处理结果; 将所述第二处理结果更新至第二本地数据库,并获取第二更新时间;以及
[0026]计算所述第二更新时间与所述第一更新时间之间的差值,并判断所述差值是否超出设定阈值,当所述差值超出设定阈值时,指示所述第二本地数据库取消所述第二处理结果的更新,恢复原数据,并向所述第一子系统发送数据处理失败指示;当所述差值未超出设定阈值时,指示所述第二本地数据库持久化所述第二处理结果的更新,并向所述第一子系统发送数据处理成功指示;
[0027]所述第一子系统,还用于接收到数据处理失败指示后,指示所述第一本地数据库取消所述第一处理结果的更新,恢复原数据;以及
[0028]接收到数据处理成功指示后,指示所述第一本地数据库持久化所述第一处理结果的更新。
[0029]优选地,所述外部系统、所述第一子系统和所述第二子系统之间周期性地进行时钟同步。
[0030]优选地,所述第一更新时间包括所述第一处理结果更新至所述第一本地数据库后的时间,或所述第一处理结果更新至第一本地数据库后,从所述第一子系统的主机获取的时间;
[0031]所述第二更新时间包括所述第二处理结果更新至所述第二本地数据库后的时间, 或所述第二处理结果更新至所述第二本地数据库后,从所述第二子系统的主机获取的时间。
[0032]优选地,所述第一子系统,还用于通过COMMIT命令指示所述第一本地数据库持久化所述第一处理结果的更新,通过ROLLBACK命令指示所述第一本地数据库取消所述第一处理结果的更新;
[0033]所述第二子系统,还用于通过COMMIT命令指示所述第二本地数据库持久化所述第二处理结果的更新,通过ROLLBACK命令指示所述第二本地数据库取消所述第二处理结果的更新。
[0034]优选地,所述数据处理至少包括数据的新增、修改、删除。
[0035]本发明实施例中,当第一子系统接收到外部系统发送的交易请求后,进行数据处理,得到第一处理结果;将第一处理结果更新至第一本地数据库,并获取第一更新时间;第一子系统向第二子系统发送业务处理请求,业务处理请求中携带有第一处理结果和第一更新时间;第二子系统根据业务处理请求进行数据处理,得到第二处理结果;将第二处理结果更新至第二本地数据库,并获取第二更新时间;第二子系统计算第二更新时间与第一更新时间之间的差值,并判断差值是否超出设定阈值,当差值超出设定阈值时,指示第二本地数据库取消第二处理结果的更新,恢复原数据,并向第一子系统发送数据处理失败指示;当差值未超出设定阈值时,指示第二本地数据库持久化第二处理结果的更新,并向第一子系统发送数据处理成功指示;第一子系统接收到数据处理失败指示后,指示第一本地数据库取消第一处理结果的更新,恢复原数据;第一子系统接收到数据处理成功指示后,指示第一本地数据库持久化第一处理结果的更新。
[0036]与现有技术相比,本发明实施例的技术方案有效解决了交易系统中各子系统之间交易数据不一致的问题,本发明实施例通过下级子系统向上级子系统修改数据确认的方式,保证各子系统之间交易数据更新的逐级确认,以保证各子系统之间的交易数据完全一致,避免了人工比对,节约了人力成本,并保证了交易系统的稳定性。【附图说明】
[0037]图1为本发明实施例的在线交易系统数据一致性的方法的流程图;
[0038]图2为本发明实施例的在线交易系统数据一致性的系统的组成结构示意图;
[0039]图3为本发明实施例的在线交易系统数据一致性的方法的应用示例流程图。【具体实施方式】
[0040]为使本发明的目的、技术方案和优点更加清除明白,以下举实施例并参照附图,对本发明进一步详细说明。
[0041]图1为本发明实施例的在线交易系统数据一致性的方法的流程图,如图1所示,本发明实施例的在线交易系统数据一致性的方法包括以下步骤:
[0042]步骤101,第一子系统接收到外部系统发送的交易请求后,进行数据处理,得到第一处理结果;将所述第一处理结果更新至第一本地数据库,并获取第一更新时间。
[0043]当第一子系统接收到外部系统发送的交易请求后,将对所请求的交易数据进行处理,并在对交易数据处理后,将处理结果更新至本地数据库中,并获取第一更新时间。本发明实施例中,在对交易数据进行处理时,需要记录相关的操作时间,以便确认后续的数据更新操作是否超出了处理时限阈值,对于超出处理时限的数据,将进行回退操作,以避免各子系统之间数据的不一致,而对于未超出处理时限的数据,将在各子系统之间进行更新确认, 以使各子系统之间的交易数据完全一致。
[0044]本发明实施例中,数据处理至少包括数据的新增、修改、删除等。
[0045]步骤102,所述第一子系统向第二子系统发送业务处理请求,所述业务处理请求中携带有所述第一处理结果和所述第一更新时间。
[0046]本发明实施例中,第一子系统在向第二子系统发送业务处理请求时,还在业务处理请求中携带有所述第一处理结果和所述第一更新时间,以方便第二子系统进行操作处理是否超时的确认。
[0047]步骤103,所述第二子系统根据所述业务处理请求进行数据处理,得到第二处理结果;将所述第二处理结果更新至第二本地数据库,并获取第二更新时间。
[0048]第二子系统接收到业务处理请求后,根据业务处理请求中的业务参数,对相应的交易数据进行处理,并将处理结果更新至第二本地数据库,并获取第二更新时间。本发明实施例中,数据处理至少包括数据的新增、修改、删除等。
[0049]步骤104,所述第二子系统计算所述第二更新时间与所述第一更新时间之间的差值,并判断所述差值是否超出设定阈值,当所述差值超出设定阈值时,指示所述第二本地数据库取消所述第二处理结果的更新,恢复原数据,并向所述第一子系统发送数据处理失败指示;当所述差值未超出设定阈值时,指示所述第二本地数据库持久化所述第二处理结果的更新,并向所述第一子系统发送数据处理成功指示。
[0050]第二子系统在将第二处理结果更新至第二本地数据库后,记录第二更新时间,并计算第二更新时间与前述的第一更新时间的差值,确定该差值是否超出了设定阈值,即判断数据处理时间是否过长,过长时则进行数据回退操作,而未超出处理时间阈值时则进行数据更新的确认操作。
[0051]本发明实施例中,为保证数据更新时间的一致性,所述外部系统、所述第一子系统和所述第二子系统之间周期性地进行时钟同步。同步周期可以是50毫秒、100毫秒、1秒或 10秒、1分钟等。更新周期具体可根据交易系统对时间要求的精确度而定。
[0052]步骤105,所述第一子系统接收到数据处理失败指示后,指示所述第一本地数据库取消所述第一处理结果的更新,恢复原数据;所述第一子系统接收到数据处理成功指示后, 指示所述第一本地数据库持久化所述第一处理结果的更新。
[0053]具体地,本发明实施例中,所述第一子系统通过COMMIT命令指示所述第一本地数据库持久化所述第一处理结果的更新;所述第一子系统通过ROLLBACK命令指示所述第一本地数据库取消所述第一处理结果的更新;
[0054]所述第二子系统通过COMMIT命令指示所述第二本地数据库持久化所述第二处理结果的更新;所述第二子系统通过ROLLBACK命令指示所述第二本地数据库取消所述第二处理结果的更新。
[0055]以下通过具体示例,进一步阐明本发明技术方案的实质。
[0056]图2为本发明实施例的在线交易系统数据一致性的系统的组成结构示意图,如图 2所示,本发明实施例的在线交易系统数据一致性的系统包括外部系统、第一子系统(子系统1)和第二子系统(子系统2),其中,
[0057]外部系统,用于向所述第一子系统发送交易请求;
[0058]第一子系统,用于接收到外部系统发送的交易请求后,进行数据处理,得到第一处理结果;将所述第一处理结果更新至第一本地数据库,并获取第一更新时间;以及,
[0059]向第二子系统发送业务处理请求,所述业务处理请求中携带有所述第一处理结果和所述第一更新时间;
[0060]所述第二子系统,用于根据所述业务处理请求进行数据处理,得到第二处理结果; 将所述第二处理结果更新至第二本地数据库,并获取第二更新时间;以及
[0061]计算所述第二更新时间与所述第一更新时间之间的差值,并判断所述差值是否超出设定阈值,当所述差值超出设定阈值时,指示所述第二本地数据库取消所述第二处理结果的更新,恢复原数据,并向所述第一子系统发送数据处理失败指示;当所述差值未超出设定阈值时,指示所述第二本地数据库持久化所述第二处理结果的更新,并向所述第一子系统发送数据处理成功指示;
[0062]所述第一子系统,还用于接收到数据处理失败指示后,指示所述第一本地数据库取消所述第一处理结果的更新,恢复原数据;以及
[0063]接收到数据处理成功指示后,指示所述第一本地数据库持久化所述第一处理结果的更新。
[0064]本发明实施例中,所述外部系统、所述第一子系统和所述第二子系统之间周期性地进行时钟同步。
[0065]本发明实施例中,所述第一更新时间包括所述第一处理结果更新至所述第一本地数据库后的时间,或所述第一处理结果更新至第一本地数据库后,从所述第一子系统的主机获取的时间;
[0066]所述第二更新时间包括所述第二处理结果更新至所述第二本地数据库后的时间, 或所述第二处理结果更新至所述第二本地数据库后,从所述第二子系统的主机获取的时间。
[0067]本发明实施例中,所述第一子系统,还用于通过COMMIT命令指示所述第一本地数据库持久化所述第一处理结果的更新,通过ROLLBACK命令指示所述第一本地数据库取消所述第一处理结果的更新;所述第二子系统,还用于通过COMMIT命令指示所述第二本地数据库持久化所述第二处理结果的更新,通过ROLLBACK命令指示所述第二本地数据库取消所述第二处理结果的更新。
[0068]本发明实施例中,所述数据处理至少包括数据的新增、修改、删除。
[0069]具体地,如图2所示,本发明实施例的在线交易系统数据一致性的系统在子系统数据库操作提交前增加了处理时间的判断,处理时间超过配置阀值后将不提交数据,而是进行回滚操作,其中,外部系统可以是直接同最终用户接触的客户端,或者其他与本系统集群没有共享业务数据的中间系统。例如可以是用户通过电子设备安装的在线交易系统。子系统1为集群业务系统中的一个上层子系统。子系统2为集群业务系统中一个中间层或者下层子系统。
[0070]上层子系统(子系统1)从在提交处理请求到下层子系统时从本系统数据库获取的系统时间。
[0071]在各个子系统中,根据处理需要对数据的新增、修改、删除等引起数据变化的操作。
[0072]将数据处理结果写入到数据库的会话中,此时并未提交修改结果,即没有发送提交指令到数据库完成数据的最终修改。
[0073]向数据库发送COMMIT命令,使数据修改生效,此时数据库将修改内容持久化到磁盘。
[0074]向数据库提交ROLLBACK命令,撤销当前会话中的数据修改。
[0075]本发明实施例中,在主机上配置时钟同步功能,使集群系统中各个主机的时间保持一致,用途在于获取本地主机时间时等同于从其他子系统主机获取的时间,时间同步后从不同主机获取的时间计算的差值才是一致。
[0076]在数据处理完成后,正式向数据发送提交COMMIT命令之前,比较本次处理接收到的上层系统传入的开始处理时间和本地数据库主机获取到的当前时间,检查本次处理时长是否超出规定的时间。
[0077]以下通过具体处理流程,进一步阐明本发明技术方案的实质。
[0078]图3为本发明实施例的在线交易系统数据一致性的方法的应用示例流程图,如图 3所示,本示例的在线交易系统数据一致性的方法包括以下步骤:
[0079]步骤1,外部系统发起交易请求;
[0080]步骤2,上层系统(子系统1)接收请求后进行数据处理。
[0081]步骤3,子系统1将数据写入数据库,并未提交COMMIT ;
[0082]步骤4,子系统1获取数据库当前时间戳;
[0083]步骤5,子系统1将业务参数和获取到的当前时间作为处理开始时间封装后发送至子系统2 ;
[0084]步骤6,子系统2接收业务请求后进行数据处理;
[0085]步骤7,子系统2将数据处理结果写入数据库,并未提交COMMIT ;
[0086]步骤8,子系统2获取数据库当前时间。
[0087]步骤9,将当前时间与子系统1传入的处理开始时间进行比较,如果未超过设定阈值则发送数据库提交命令,之后返回给子系统1成功,子系统1随后向本地数据库发送 COMMIT 命令;
[0088]本发明实施例中,数据处理开始时间可以是子系统1的数据处理结果更新至子系统1的本地数据库后的时间,或为子系统1的数据处理结果更新至子系统1的本地数据库后,从子系统1的主机获取的时间。
[0089]本发明实施例中,子系统2与子系统1发送的数据处理开始时间进行比较的时间, 可以是子系统2将数据处理结果更新至子系统2的本地数据库后的时间,或为子系统2的数据处理结果更新至子系统2的本地数据库后,从子系统2的主机获取的时间。由于数据处理的时间非常短,所以,上述的比较时间可以是数据处理结果写入本地数据库的时间,也可以是写入数据库后向主机获取的时间。
[0090]具体地,子系统2将子系统1传入的处理开始时间进行比较后,确认未超出设定阈值,将向子系统2的本地数据库发送COMMIT命令,使子系统2的本地数据库持久化当前的交易处理结果,并向子系统1发送数据处理成功的消息;子系统1接收到子系统2发送的数据处理成功的消息后,向子系统1本地数据库发送COMMIT命令,子系统1的本地数据库接收到COMMIT命令后,持久化子系统1的本地数据库对应的交易处理结果。
[0091]步骤10,将当前时间同子系统1传入的处理开始时间进行比较,如果超过设定阈值则发送数据库回滚命令,之后返回给子系统1失败消息,子系统1随后向本地数据库发送 ROLLBACK 命令;
[0092]具体地,子系统2将子系统1传入的处理开始时间进行比较后,确认超出了设定阈值,将向子系统2的本地数据库发送ROLLBACK命令,使子系统2的本地数据库取消当前的交易处理结果,并向子系统1发送数据处理失败的消息;子系统1接收到子系统2发送的数据处理失败的消息后,向子系统1本地数据库发送ROLLBACK命令,子系统1的本地数据库接收到ROLLBACK命令后,取消子系统1的本地数据库对应的交易处理结果,回复交易结果更新之前的数据。
[0093]本发明实施例在跨数据库、跨系统之间进行协同处理时,对响应时间要求较高、达到处理时限自动却断的集群系统中,使用此方法可以保证各个子系统的数据一致性。采用此方法可以解决大部分情况下数据处理超时导致的不一致情况,减少了后期数据批量比对处理的资源投入。
[0094]本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
[0095]在本发明所提供的几个实施例中,应该理解到,所揭露的方法、装置和电子设备, 可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
[0096]上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
[0097]另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加应用功能单元的形式实现。
[0098]本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0099]或者,本发明实施例上述集成的单元如果以应用功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以应用产品的形式体现出来,该计算机应用产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0100]本发明的保护范围并不局限于此,熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。
【主权项】
1.一种在线交易系统数据一致性的方法,其特征在于,所述方法包括:第一子系统接收到外部系统发送的交易请求后,进行数据处理,得到第一处理结果;将 所述第一处理结果更新至第一本地数据库,并获取第一更新时间;所述第一子系统向第二子系统发送业务处理请求,所述业务处理请求中携带有所述第 一处理结果和所述第一更新时间;所述第二子系统根据所述业务处理请求进行数据处理,得到第二处理结果;将所述第 二处理结果更新至第二本地数据库,并获取第二更新时间;所述第二子系统计算所述第二更新时间与所述第一更新时间之间的差值,并判断所述 差值是否超出设定阈值,当所述差值超出设定阈值时,指示所述第二本地数据库取消所述 第二处理结果的更新,恢复原数据,并向所述第一子系统发送数据处理失败指示;当所述差 值未超出设定阈值时,指示所述第二本地数据库持久化所述第二处理结果的更新,并向所 述第一子系统发送数据处理成功指示;所述第一子系统接收到数据处理失败指示后,指示所述第一本地数据库取消所述第一 处理结果的更新,恢复原数据;所述第一子系统接收到数据处理成功指示后,指示所述第一本地数据库持久化所述第 一处理结果的更新。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述外部系统、所述第一子系统和所述第二子系统之间周期性地进行时钟同步。3.根据权利要求1所述的方法,其特征在于,所述第一更新时间包括所述第一处理结 果更新至所述第一本地数据库后的时间,或所述第一处理结果更新至第一本地数据库后, 从所述第一子系统的主机获取的时间;所述第二更新时间包括所述第二处理结果更新至所述第二本地数据库后的时间,或所 述第二处理结果更新至所述第二本地数据库后,从所述第二子系统的主机获取的时间。4.根据权利要求1所述的方法,其特征在于,所述第一子系统通过COMMIT命令指示所 述第一本地数据库持久化所述第一处理结果的更新;所述第一子系统通过ROLLBACK命令 指示所述第一本地数据库取消所述第一处理结果的更新;所述第二子系统通过COMMIT命令指示所述第二本地数据库持久化所述第二处理结果 的更新;所述第二子系统通过ROLLBACK命令指示所述第二本地数据库取消所述第二处理 结果的更新。5.根据权利要求1所述的方法,其特征在于,所述数据处理至少包括数据的新增、修 改、删除。6.—种在线交易系统数据一致性的系统,所述系统包括外部系统、第一子系统和第二 子系统,其特征在于,外部系统,用于向所述第一子系统发送交易请求;第一子系统,用于接收到外部系统发送的交易请求后,进行数据处理,得到第一处理结 果;将所述第一处理结果更新至第一本地数据库,并获取第一更新时间;以及,向第二子系统发送业务处理请求,所述业务处理请求中携带有所述第一处理结果和所 述第一更新时间;所述第二子系统,用于根据所述业务处理请求进行数据处理,得到第二处理结果;将所述第二处理结果更新至第二本地数据库,并获取第二更新时间;以及计算所述第二更新时间与所述第一更新时间之间的差值,并判断所述差值是否超出设 定阈值,当所述差值超出设定阈值时,指示所述第二本地数据库取消所述第二处理结果的 更新,恢复原数据,并向所述第一子系统发送数据处理失败指示;当所述差值未超出设定阈 值时,指示所述第二本地数据库持久化所述第二处理结果的更新,并向所述第一子系统发 送数据处理成功指示;所述第一子系统,还用于接收到数据处理失败指示后,指示所述第一本地数据库取消 所述第一处理结果的更新,恢复原数据;以及接收到数据处理成功指示后,指示所述第一本地数据库持久化所述第一处理结果的更新。7.根据权利要求6所述的系统,其特征在于,所述外部系统、所述第一子系统和所述第 二子系统之间周期性地进行时钟同步。8.根据权利要求6所述的系统,其特征在于,所述第一更新时间包括所述第一处理结 果更新至所述第一本地数据库后的时间,或所述第一处理结果更新至第一本地数据库后, 从所述第一子系统的主机获取的时间;所述第二更新时间包括所述第二处理结果更新至所述第二本地数据库后的时间,或所 述第二处理结果更新至所述第二本地数据库后,从所述第二子系统的主机获取的时间。9.根据权利要求6所述的系统,其特征在于,所述第一子系统,还用于通过COMMIT命令指示所述第一本地数据库持久化所述第一 处理结果的更新,通过ROLLBACK命令指示所述第一本地数据库取消所述第一处理结果的 更新;所述第二子系统,还用于通过COMMIT命令指示所述第二本地数据库持久化所述第二 处理结果的更新,通过ROLLBACK命令指示所述第二本地数据库取消所述第二处理结果的更新。10.根据权利要求6所述的系统,其特征在于,所述数据处理至少包括数据的新增、修 改、删除。
【文档编号】G06F17/30GK105989503SQ201510060800
【公开日】2016年10月5日
【申请日】2015年2月5日
【发明人】沈明华, 马秋蓉, 杨文松
【申请人】中国移动通信集团云南有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1