本发明涉及数据处理,尤其涉及一种分布式事务的处理方法、系统、设备及存储介质。
背景技术:
1、分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点上,一个简单的操作,在服务端可能是由多个服务和数据库实例协同完成的,特别是在互联网金融等一致性要求较高的场景下,多个独立操作之间的数据一致性问题仍有待解决。
技术实现思路
1、有鉴于此,本申请的目的之一在于提供一种分布式事务的处理方法、系统、计算机设备及计算机可读存储介质,能够至少解决上述部分技术问题。
2、第一方面,本申请实施例提供了一种分布式事务的处理方法,所述方法包括:
3、获取分布式事务的处理请求,并根据所述处理请求确定所述分布式事务的事务类型;
4、根据所述事务类型确定消息路径,并通过所述消息路径向预设消息中间件发送半消息,其中,所述半消息为所述处理请求对应的事务消息,不同消息路径之间的消息传输是隔离的;
5、接收所述预设消息中间件基于所述半消息生成的唯一标识符,并将所述半消息存储至数据库;
6、根据所述唯一标识符监测存储在所述数据库中的半消息的第一状态,及存储在所述预设消息中间件中的半消息的第二状态,并在所述第一状态和所述第二状态均为已消费的条件下删除存储在所述数据库中的半消息。
7、在一种可能的实施方式中,所述根据所述事务类型确定消息路径,并通过所述消息路径向预设消息中间件发送半消息之后,所述方法还包括:
8、在预设时长内未接收到所述唯一标识符的条件下,将所述半消息存储至数据库,并按第一预设时间间隔向所述预设消息中间件发送所述半消息直至在所述预设时长内接收到所述唯一标识符的条件下停止发送。
9、在一种可能的实施方式中,所述根据所述事务类型确定消息路径,包括:
10、根据所述事务类型在预设配置文件中确定所述消息路径,其中,所述预设配置文件包括不同的事务类型及与所述不同的事务类型存在映射关系的消息路径。
11、在一种可能的实施方式中,所述根据所述事务类型确定消息路径,并通过所述消息路径向预设消息中间件发送半消息,包括:
12、根据所述事务类型创建第一生产者组和第二生产者组;
13、通过所述第一生产者组,并按所述消息路径发送所述半消息及与所述半消息的关联信息至所述预设消息中间件,其中,所述关联信息包括所述第一生产者组的名称、所述半消息的生产时间戳及优先等级至所述预设消息中间件。
14、在一种可能的实施方式中,所述半消息的优先等级包括依次增加的第一等级、第二等级和第三等级,所述预设消息中间件用于根据所述半消息的优先等级生成所述唯一标识符。
15、在一种可能的实施方式中,所述根据所述唯一标识符监测存储在所述数据库中的半消息的第一状态,及存储在所述预设消息中间件中的半消息的第二状态,包括:
16、通过所述第二生产者组监测存储在所述数据库中的半消息的第一状态,及存储在所述预设消息中间件中的半消息的第二状态,其中,所述第一生产者组和所述第二生产者组为不同的生产者组。
17、在一种可能的实施方式中,所述预设消息中间件包括rocketmq。
18、第二方面,本申请实施例提供了一种分布式事务的处理系统,所述系统包括:
19、获取模块,用于获取分布式事务的处理请求,并根据所述处理请求确定所述分布式事务的事务类型;
20、发送模块,用于根据所述事务类型确定消息路径,并通过所述消息路径向预设消息中间件发送半消息,其中,所述半消息为所述处理请求对应的事务消息,不同消息路径之间的消息传输是隔离的;
21、接收模块,用于接收所述预设消息中间件基于所述半消息生成的唯一标识符,并将所述半消息存储至数据库;
22、监测模块,用于根据所述唯一标识符监测存储在所述数据库中的半消息的第一状态,及存储在所述预设消息中间件中的半消息的第二状态,并在所述第一状态和所述第二状态均为已消费的条件下删除存储在所述数据库中的半消息。
23、第三方面,本申请实施例提供了一种计算机设备,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述计算机程序在被所述处理器执行时,实现第一方面提供的分布式事务的处理方法。
24、第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序在被一个或多个处理器执行时,实现第一方面提供的分布式事务的处理方法。
25、本申请实施例提供的分布式事务的处理方法,可以通过获取分布式事务的处理请求,并根据所述处理请求确定所述分布式事务的事务类型;根据所述事务类型确定消息路径,并通过所述消息路径向预设消息中间件发送半消息,其中,所述半消息为所述处理请求对应的事务消息,不同消息路径之间的消息传输是隔离的;接收所述预设消息中间件基于所述半消息生成的唯一标识符,并将所述半消息存储至数据库;根据所述唯一标识符监测存储在所述数据库中的半消息的第一状态,及存储在所述预设消息中间件中的半消息的第二状态,并在所述第一状态和所述第二状态均为已消费的条件下删除存储在所述数据库中的半消息,保证了数据的一致性。
1.一种分布式事务的处理方法,其特征在于,所述方法包括:
2.如权利要求1所述的方法,其特征在于,所述根据所述事务类型确定消息路径,并通过所述消息路径向预设消息中间件发送半消息之后,所述方法还包括:
3.如权利要求1所述的方法,其特征在于,所述根据所述事务类型确定消息路径,包括:
4.如权利要求1所述的方法,其特征在于,所述根据所述事务类型确定消息路径,并通过所述消息路径向预设消息中间件发送半消息,包括:
5.如权利要求4所述的方法,其特征在于,所述半消息的优先等级包括依次增加的第一等级、第二等级和第三等级,所述预设消息中间件用于根据所述半消息的优先等级生成所述唯一标识符。
6.如权利要求4所述的方法,其特征在于,所述根据所述唯一标识符监测存储在所述数据库中的半消息的第一状态,及存储在所述预设消息中间件中的半消息的第二状态,包括:
7.如权利要求1所述的方法,其特征在于,所述预设消息中间件包括rocket mq。
8.一种分布式事务的处理系统,其特征在于,所述系统包括:
9.一种计算机设备,其特征在于,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述计算机程序在被所述处理器执行时实现权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,该计算机程序在被一个或多个处理器执行时,实现权利要求1-7中任一项所述的方法。