本发明涉及计算机,具体说是一种分布式事务处理方法。
背景技术:
1、随着云计算和大数据技术的发展,分布式系统变得越来越普遍。在这样的环境中,确保跨多个节点的事务能够正确执行,即达到acid(原子性、一致性、隔离性、持久性)特性,是至关重要的。传统的两阶段提交等协议虽然能够保证事务的一致性,但在大规模分布式系统中,它们的性能瓶颈和单点故障问题日益凸显。
2、尽管目前有很多分布式事务的解决方案,比如seata、lcn等(seata和lcn的基本实现思路是一样的,唯一区别在于回滚方式,lcn采用代理数据源假关闭连接,暂时不提交本地事务(不提交也不回滚),但是容易造成死锁;seata采用undo_log的形式逆向生成sql语句实现回滚),但是这些方案都需要依赖一个协调器,协调器服务自身也要保证可靠,以及和各服务网络通讯也要保证可靠,否则造成的影响是不可预估的。
3、公开于该背景技术部分的信息仅仅旨在加深对本发明的总体背景技术的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域技术人员所公知的现有技术。
技术实现思路
1、针对现有技术中存在的缺陷,本发明的目的在于提供一种分布式事务处理方法,通过定时任务来代替传统的协调器,从而保证执行失败后事务的最终一致性,分布式事务处理高效可靠,满足分布式系统中数据一致性及故障恢复的需求。
2、为达到以上目的,本发明采取的技术方案是:
3、一种分布式事务处理方法,其特征在于,所述方法包括:
4、当业务流程被调用时,首先创建代表整个业务流程的汇总操作数据;
5、每调用一次服务且调用成功后,都向汇总操作数据中插入一条对应服务的反向操作数据,用来实现业务异常后的回滚操作;
6、对服务的调用全部完成后,判断业务流程是否执行成功,如果执行成功,则删除汇总操作数据;如果执行失败,则读取汇总操作数据中的反向操作数据,并对所有服务执行反向操作;
7、判断反向操作是否执行成功,如果执行成功,则删除汇总操作数据;如果执行失败,则更新汇总操作数据中的状态标识为失败。
8、在上述技术方案的基础上,以远程调用的方式对服务进行调用。
9、在上述技术方案的基础上,所述汇总操作数据包括:业务执行状态、tid(追踪整个业务流程的id)、数据创建时间。
10、在上述技术方案的基础上,设定一个定时协调器,用于定时扫描汇总操作数据,并根据业务流程的执行状态确定是否需要对所有服务执行反向操作。
11、在上述技术方案的基础上,执行反向操作时,每执行完一次反向操作,则判断执行是否成功,并将判断结果写入汇总操作数据,
12、定时协调器在全部判断结果均为成功时,更新汇总操作数据中的状态标识为成功,结束回滚操作;
13、当某一反向操作的判断结果为失败时,定时协调器继续调用对应服务的反向操作,直至判断结果为成功。
14、本发明所述的一种分布式事务处理方法,具有以下有益效果:
15、通过定时任务来代替传统的协调器,从而保证执行失败后事务的最终一致性,分布式事务处理高效可靠,满足分布式系统中数据一致性及故障恢复的需求。
16、本发明结合了定时回滚策略和技术,确保了即使在网络不稳定或系统故障情况下,也能最大限度地保证数据的最终一致性,提高了系统的整体稳定性和业务连续性。
17、本发明实现了一个高效、可靠的分布式事务处理机制,有效解决了分布式环境下数据不一致的问题,尤其适用于对异常回滚数据一致性有一定容忍度但强调最终一致性的应用场景。
1.一种分布式事务处理方法,其特征在于,所述方法包括:
2.如权利要求1所述的一种分布式事务处理方法,其特征在于,以远程调用的方式对服务进行调用。
3.如权利要求1所述的一种分布式事务处理方法,其特征在于,所述汇总操作数据包括:业务执行状态、tid(追踪整个业务流程的id)、数据创建时间。
4.如权利要求1所述的一种分布式事务处理方法,其特征在于,设定一个定时协调器,用于定时扫描汇总操作数据,并根据业务流程的执行状态确定是否需要对所有服务执行反向操作。
5.如权利要求1所述的一种分布式事务处理方法,其特征在于,执行反向操作时,每执行完一次反向操作,则判断执行是否成功,并将判断结果写入汇总操作数据,
