本技术涉及计算机,特别是涉及一种业务操作方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术:
1、随着计算机技术的发展,基于微服务架构的业务服务得到广泛应用。在微服务架构下,业务服务通常由多个分布式的微服务构成,每个微服务部署了单独的数据库,数据库间互相不通信,在通过业务服务执行业务操作时,怎样使各微服务对应的数据库保持数据一致性成为重要的问题。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种能够保持数据一致性的业务操作方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
2、第一方面,本技术提供了一种业务操作方法。所述方法包括:
3、当通过第一微服务拦截到服务调用请求时,从所述服务调用请求中提取事务信息,并确定所述事务信息对应的数据事务;
4、将所述第一微服务加入执行所述数据事务的服务链;所述服务链上还包括执行所述数据事务的其他微服务;
5、若所述服务链上的微服务均全部成功执行所述数据事务对应的业务操作,执行事务提交操作;
6、若所述服务链上的微服务未全部成功执行所述数据事务对应的业务操作,对各所述微服务对应的数据库进行回滚操作。
7、第二方面,本技术还提供了一种业务操作装置。所述装置包括:
8、确定模块,用于当通过第一微服务拦截到服务调用请求时,从所述服务调用请求中提取事务信息,并确定所述事务信息对应的数据事务;
9、加入模块,用于将所述第一微服务加入执行所述数据事务的服务链;所述服务链上还包括执行所述数据事务的其他微服务;
10、提交模块,用于若所述服务链上的微服务均全部成功执行所述数据事务对应的业务操作,执行事务提交操作;
11、回滚模块,用于若所述服务链上的微服务未全部成功执行所述数据事务对应的业务操作,对各所述微服务对应的数据库进行回滚操作。
12、在一个实施例中,所述装置还包括:
13、检测模块,用于若通过第二微服务接收到服务调用请求,检测所述服务调用请求对应的数据事务是否已创建;
14、创建模块,用于若所述服务调用请求对应的数据事务尚未创建,创建数据事务并确定所述数据事务对应的事务信息;
15、添加模块,用于将所述事务信息添加至所述服务调用请求,并将添加了所述事务信息的服务调用请求转发至所述第一微服务;
16、所述确定模块,还用于当通过第一微服务拦截到所述第二微服务转发的服务调用请求,从所述服务调用请求中提取事务信息。
17、在一个实施例中,所述装置还包括:
18、所述确定模块,还用于若所述服务调用请求对应的数据事务已创建,确定所述服务调用请求对应的已创建数据事务;
19、所述加入模块,还用于将所述第二微服务加入所述已创建数据事务对应的服务链。
20、在一个实施例中,所述检测模块,还用于:
21、若通过部署在第二微服务中的调用拦截器拦截到服务调用请求,检测所述服务调用请求是否包含已创建数据事务的事务信息;
22、若所述服务调用请求中不包含所述已创建数据事务的事务信息,确定所述服务调用请求对应的数据事务未创建。
23、在一个实施例中,所述创建模块,还用于:
24、若所述服务调用请求对应的数据事务尚未创建,向事务管理器发送事务创建指令,以使所述事务管理器基于所述事务创建指令创建所述数据事务并确定所述数据事务对应的事务信息。
25、在一个实施例中,所述提交模块,还用于:
26、当所述服务链上的微服务成功执行所述数据事务对应的业务操作时,向事务管理器反馈操作成功信息;
27、若所述事务管理器接收到所述服务链上的全部微服务反馈的操作成功信息,执行事务提交操作。
28、在一个实施例中,所述回滚模块,还用于:
29、若事务管理器捕获到所述服务链上的微服务对业务操作执行异常的信息,确定所述服务链上的微服务未全部成功执行所述数据事务对应的业务操作;
30、对所述服务链上的全部所述微服务对应的数据库进行回滚操作。
31、第三方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
32、当通过第一微服务拦截到服务调用请求时,从所述服务调用请求中提取事务信息,并确定所述事务信息对应的数据事务;
33、将所述第一微服务加入执行所述数据事务的服务链;所述服务链上还包括执行所述数据事务的其他微服务;
34、若所述服务链上的微服务均全部成功执行所述数据事务对应的业务操作,执行事务提交操作;
35、若所述服务链上的微服务未全部成功执行所述数据事务对应的业务操作,对各所述微服务对应的数据库进行回滚操作。
36、第四方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
37、当通过第一微服务拦截到服务调用请求时,从所述服务调用请求中提取事务信息,并确定所述事务信息对应的数据事务;
38、将所述第一微服务加入执行所述数据事务的服务链;所述服务链上还包括执行所述数据事务的其他微服务;
39、若所述服务链上的微服务均全部成功执行所述数据事务对应的业务操作,执行事务提交操作;
40、若所述服务链上的微服务未全部成功执行所述数据事务对应的业务操作,对各所述微服务对应的数据库进行回滚操作。
41、第五方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
42、当通过第一微服务拦截到服务调用请求时,从所述服务调用请求中提取事务信息,并确定所述事务信息对应的数据事务;
43、将所述第一微服务加入执行所述数据事务的服务链;所述服务链上还包括执行所述数据事务的其他微服务;
44、若所述服务链上的微服务均全部成功执行所述数据事务对应的业务操作,执行事务提交操作;
45、若所述服务链上的微服务未全部成功执行所述数据事务对应的业务操作,对各所述微服务对应的数据库进行回滚操作。
46、上述业务操作方法、装置、计算机设备、存储介质和计算机程序产品,当通过第一微服务拦截到服务调用请求时,从服务调用请求中提取事务信息,并确定事务信息对应的数据事务。将第一微服务加入执行数据事务的服务链,服务链上还包括执行数据事务的其他微服务。若服务链上的微服务均全部成功执行数据事务对应的业务操作,执行事务提交操作,从而使整个服务链上的全部微服务可以统一的执行数据事务对应的业务操作。若服务链上的微服务未全部成功执行数据事务对应的业务操作,对各微服务对应的数据库进行回滚操作,避免某个微服务因执行业务操作异常而无法与其他成功执行业务操作的微服务保持数据一致,保证了整个服务链中的数据一致性。