在线交易系统数据一致性的方法及系统技术方案

技术编号:13793195 阅读:35 留言:0更新日期:2016-10-06 06:03
本发明专利技术实施例公开了一种在线交易系统数据一致性的方法及系统,所述方法包括:当第一子系统接收到外部系统发送的交易请求后,进行数据处理,得到第一处理结果;将第一处理结果更新至第一本地数据库,并获取第一更新时间;第一子系统向第二子系统发送业务处理请求,业务处理请求中携带有第一处理结果和第一更新时间;第二子系统根据业务处理请求进行数据处理,得到第二处理结果;将第二处理结果更新至第二本地数据库,并获取第二更新时间;第二子系统计算第二更新时间与第一更新时间之间的差值,并判断差值是否超出设定阈值,当差值超出设定阈值时,指示第二本地数据库取消第二处理结果的更新,恢复原数据。

【技术实现步骤摘要】

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

【技术保护点】
一种在线交易系统数据一致性的方法,其特征在于,所述方法包括:第一子系统接收到外部系统发送的交易请求后,进行数据处理,得到第一处理结果;将所述第一处理结果更新至第一本地数据库,并获取第一更新时间;所述第一子系统向第二子系统发送业务处理请求,所述业务处理请求中携带有所述第一处理结果和所述第一更新时间;所述第二子系统根据所述业务处理请求进行数据处理,得到第二处理结果;将所述第二处理结果更新至第二本地数据库,并获取第二更新时间;所述第二子系统计算所述第二更新时间与所述第一更新时间之间的差值,并判断所述差值是否超出设定阈值,当所述差值超出设定阈值时,指示所述第二本地数据库取消所述第二处理结果的更新,恢复原数据,并向所述第一子系统发送数据处理失败指示;当所述差值未超出设定阈值时,指示所述第二本地数据库持久化所述第二处理结果的更新,并向所述第一子系统发送数据处理成功指示;所述第一子系统接收到数据处理失败指示后,指示所述第一本地数据库取消所述第一处理结果的更新,恢复原数据;所述第一子系统接收到数据处理成功指示后,指示所述第一本地数据库持久化所述第一处理结果的更新。

【技术特征摘要】
1.一种在线交易系统数据一致性的方法,其特征在于,所述方法包括:第一子系统接收到外部系统发送的交易请求后,进行数据处理,得到第一处理结果;将所述第一处理结果更新至第一本地数据库,并获取第一更新时间;所述第一子系统向第二子系统发送业务处理请求,所述业务处理请求中携带有所述第一处理结果和所述第一更新时间;所述第二子系统根据所述业务处理请求进行数据处理,得到第二处理结果;将所述第二处理结果更新至第二本地数据库,并获取第二更新时间;所述第二子系统计算所述第二更新时间与所述第一更新时间之间的差值,并判断所述差值是否超出设定阈值,当所述差值超出设定阈值时,指示所述第二本地数据库取消所述第二处理结果的更新,恢复原数据,并向所述第一子系统发送数据处理失败指示;当所述差值未超出设定阈值时,指示所述第二本地数据库持久化所述第二处理结果的更新,并向所述第一子系统发送数据处理成功指示;所述第一子系统接收到数据处理失败指示后,指示所述第一本地数据库取消所述第一处理结果的更新,恢复原数据;所述第一子系统接收到数据处理成功指示后,指示所述第一本地数据库持久化所述第一处理结果的更新。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述外部系统、所述第一子系统和所述第二子系统之间周期性地进行时钟同步。3.根据权利要求1所述的方法,其特征在于,所述第一更新时间包括所述第一处理结果更新至所述第一本地数据库后的时间,或所述第一处理结果更新至第一本地数据库后,从所述第一子系统的主机获取的时间;所述第二更新时间包括所述第二处理结果更新至所述第二本地数据库后的时间,或所述第二处理结果更新至所述第二本地数据库后,从所述第二子系统
\t的主机获取的时间。4.根据权利要求1所述的方法,其特征在于,所述第一子系统通过COMMIT命令指示所述第一本地数据库持久化所述第一处理结果的更新;所述第一子系统通过ROLLBACK命令指示所述第一本地数据库取消所述第一处理结果的更新;所述第二子系统通过COMMIT命令指示所述第二本地数据库持久化所述第二处理结果的更新;所述第二子系统通过ROLLBACK命令指示所述第二本地数据库取消所述第二处理结果的更新。5.根据权利要求1所述的方法,其特征在于,所述数据处理至少包括数据的新增、修改、删除。6.一种在线交易系统...

【专利技术属性】
技术研发人员:沈明华马秋蓉杨文松
申请(专利权)人:中国移动通信集团云南有限公司
类型:发明
国别省市:云南;53

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

1