本申请涉及分布式事务的处理领域,尤其涉及一种分布式事务的处理方法及装置、电子设备和存储介质。
背景技术:
1、随着互联网技术的不断发展,产生的信息也在不断膨胀,单机数据库已经难以满足企业要求,随之而来的就是分布式数据库的产生。分布式数据库可以大规模部署解决了海量数据存储的问题,但是也带来了新的挑战——分布式事务。
2、在传统的单机数据库系统中,事务可以通过acid(atomicity原子性、consistency一致性、isolation隔离性、durability持久性,合起来简称:acid)属性确保其可靠性。然而,在分布式系统中,因为系统包含多个独立数据库或者应用程序,相互之间依靠网络通信,就存在延迟、故障、中断等问题。
3、为了解决分布式系统事务相关问题,出现了多种分布式事务协议和算法。其中,最常用的就是2pc(two-phase commit两阶段提交,简称:2pc),在2pc协议中,有一个tm(transaction manager,事务管理器)和多个参与者rm(resource manager,资源管理器),tm发送prepare(准备)请求给rm,要求rm准备提交,如果所有rm都响应可以提交,tm发送commit(提交)请求来提交事务;如果存在rm响应无法提交,tm发送abort(终止)请求来终止事务。
4、2pc协议一定程度上可以解决分布式事务问题,但是仍旧存在以下问题:全流程同步阻塞,无法应对高并发场景。tm单点故障,由于整个流程都依赖tm协议,如果tm故障,所有流程阻塞,只能等待tm恢复。
技术实现思路
1、本申请提供了一种分布式事务的处理方法及装置、电子设备和存储介质,以解决现有技术中2pc协议无法应对高并发场景的问题。
2、第一方面,本申请提供了一种分布式事务的处理方法,包括:在接收到事务请求后,第一计算节点将所述事务请求所对应的事务转换成扩展架构xa事务;所述第一计算节点为分布式系统中多个计算节点中的任一节点,每一个计算节点对应一个或多个数据节点;所述分布式系统中还包括gtm全局事务管理器;所述事务请求中包括与所述事务对应的结构化查询语言sql;所述第一计算节点向所述gtm批量申请第一预设数量的gts全局时间戳;所述第一计算节点将申请到的gts随所述sql下发到对应的数据节点,并确定所述xa事务的执行结果。
3、第二方面,本申请提供了一种分布式事务的处理装置,应用于第一计算节点,包括:第一处理模块,用于在接收到事务请求后,将所述事务请求所对应的事务转换成扩展架构xa事务;所述第一计算节点为所述分布式系统中多个计算节点中的任一节点,每一个计算节点对应一个或多个数据节点;所述分布式系统中还包括gtm全局事务管理器;所述事务请求中包括与所述事务对应的结构化查询语言sql;第二处理模块,用于向所述gtm批量申请第一预设数量的gts全局时间戳;第三处理模块,用于将申请到的gts随所述sql下发到对应的数据节点,并确定所述xa事务的执行结果。
4、第三方面,本申请提供了一种电子设备,包括:至少一个通信接口;与所述至少一个通信接口相连接的至少一个总线;与所述至少一个总线相连接的至少一个处理器;与所述至少一个总线相连接的至少一个存储器,其中,所述处理器被配置为执行本申请上述第一方面所述的分布式事务的处理方法。
5、第四方面,本申请还提供了一种计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行本申请上述第一方面所述的分布式事务的处理方法。
6、本申请实施例提供的上述技术方案与现有技术相比具有如下优点:在本申请实施例中,在接收到事务请求后,第一计算节点将事务请求所对应的事务转换成xa事务,进而可以批量向gtm批量申请第一预设数量的gts,进而将申请到的gts随sql下发到对应的数据节点,并确定xa事务的执行结果,可见,在本申请实施例中,可以批量获取gts,减少了网络之间的交互,相比于比现有的2pc方式提供了更高的分布式性能,解决了现有技术中2pc协议无法应对高并发场景的问题。
1.一种分布式事务的处理方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述第一计算节点将申请到的gts随所述sql下发到对应的数据节点,包括:
3.根据权利要求2所述的方法,其特征在于,在所述第一计算节点将申请到的gts随所述sql下发到对应的数据节点之后,所述方法还包括:
4.根据权利要求3所述的方法,其特征在于,所述第一计算节点根据当前接收到的读语句的sql所对应的gts与写语句的sql对应的gts进行比较,返回读语句的sql的查询结果包括:
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,所述第一计算节点向所述gtm批量申请第一预设数量的gts全局时间戳,包括:
7.一种分布式事务的处理装置,应用于第一计算节点,其特征在于,包括:
8.根据权利要求1所述的方法,其特征在于,第三处理模块包括:
9.一种电子设备,包括:至少一个通信接口;与所述至少一个通信接口相连接的至少一个总线;与所述至少一个总线相连接的至少一个处理器;与所述至少一个总线相连接的至少一个存储器,其中,所述处理器被配置为执行本申请上述权利要求1至6任一项所述的分布式事务的处理方法。
10.一种计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行本申请上述权利要求1至6任一项所述的分布式事务的处理方法。