一种微服务集群分布式事务处理方法及其相关设备与流程

文档序号:36175362 发布日期:2023-11-25 00:16 阅读:47 来源:国知局
一种微服务集群分布式事务处理方法及其相关设备与流程

本技术属于大数据和金融科技领域,具体涉及一种微服务集群分布式事务处理方法及其相关设备。


背景技术:

1、随着业务不断扩展,业务系统的在线人数不断提升,业务数据量也得快速增长,尤其是运动步数表等热点业务数据,每天都有几十万条甚至几百万条的更新,这对业务系统的性能提出了严峻的挑战。为了应对高并发和海量数据处理,需要对业务系统进行优化更新,先是将单服务架构扩展为多服务集群,再后续是从oracle库到tidb(内核mysql)的转型,为了进一步提升系统性能,目前很多业务系统采用了自然分库分表和服务集群化的解决方案,提升服务并发能力、缩短处理时效,提升用户体验。然而采用分库分表和服务集群势必会带来事务一致性的问题,同时也会存在数据安全隐患。

2、目前解集群分布式事务一致和数据安全隐患问题通常有两个解决方案。一是通过mq分段式进行事务的提交或回滚,但此方案实现过程较复杂,并且带来代码复杂度提高的问题,初学者学习成本高,不易上手,维护成本也较为高昂。第二种是采用seata框架,seata框架分为at强事务一致和tcc最终事务一致,但该方案也有自身缺点,at模虽然是无侵入式分布式事务解决方案,但sql由框架托管统一执行,存在脏写问题;tcc模式则基本为两段或三段事务最终一致,而第一阶段会产生行锁,如果遇到长事务,则会因为事务执行太久遭遇阻塞很久,带来性能下降,进而影响用户体验。


技术实现思路

1、本技术实施例的目的在于提出一种微服务集群分布式事务处理方法、装置、计算机设备及存储介质,以解决现有采用分库分表和服务集群的方案存在的实现过程复杂,成本高,且现有方案会导致业务系统性能下降,影响用户体验的的技术问题。

2、为了解决上述技术问题,本技术实施例提供一种微服务集群分布式事务处理方法,采用了如下所述的技术方案:

3、一种微服务集群分布式事务处理方法,包括:

4、在微服务系统中集成数据分片处理中间件和事务协调器,其中,数据分片处理中间件和事务协调器协同工作;

5、获取客户端发起的服务请求,通过微服务系统中预设的切面层获取服务请求中的请求信息,并基于请求信息生成事务流水号;

6、基于事务流水号获取待处理事务的业务数据,并执行服务请求中携带的事务处理逻辑,以对业务数据进行处理,得到事务处理结果;

7、通过事务协调器协调待处理事务的各个参与者针对事务处理结果执行try操作;

8、当各个参与者均完成try操作后,通过数据分片处理中间件对事务流水号进行哈希取模运算,得到待处理事务在微服务系统的数据库中的分库分表id;

9、基于分库分表id将事务处理结果路由到微服务系统的数据库中。

10、进一步地,在获取客户端发起的服务请求,通过微服务系统中预设的切面层获取服务请求中的请求信息,并基于请求信息生成事务流水号的步骤之前,还包括:

11、在微服务系统中定义切面层,其中,切面层用于处理与事务相关的横切关注点;

12、在切面层中定义切面逻辑,其中,切面逻辑用来捕获客户端发起的服务请求,并提取服务请求中的请求信息。

13、进一步地,基于事务流水号获取待处理事务的业务数据,并执行服务请求中携带的事务处理逻辑,以对业务数据进行处理,得到事务处理结果的步骤,具体包括:

14、在微服务系统的数据库中查询与事务流水号关联的业务数据,得到待处理事务的业务数据;

15、解析服务请求,获取服务请求中携带的事务处理逻辑;

16、通过执行事务处理逻辑以对待处理事务的业务数据进行数据处理,得到事务处理结果。

17、进一步地,通过事务协调器协调待处理事务的各个参与者针对事务处理结果执行try操作的步骤,具体包括:

18、确定待处理事务的各个参与者,并指示待处理事务的各个参与者在事务协调器中注册自身信息;

19、向待处理事务的各个参与者发出try操作指示,其中,try操作为异常捕获操作,待处理事务的各个参与者通过try操作验证事务处理结果的异常情况;

20、获取待处理事务的各个参与者响应try操作指示生成的try操作响应结果,并整合try操作响应结果。

21、进一步地,当各个参与者均完成try操作后,通过数据分片处理中间件对事务流水号进行哈希取模运算,得到待处理事务在微服务系统的数据库中的分库分表id的步骤,具体包括:

22、检测try操作响应结果,当待处理事务的各个参与者均完成try操作后,将事务流水号输入到数据分片处理中间件中;

23、通过数据分片处理中间件通过哈希算法计算事务流水号的哈希值;

24、将计算得到的事务流水号的哈希值与数据分片处理中间件的分片数进行取模运算,得到待处理事务在微服务系统的数据库中的分库分表id。

25、进一步地,在获取待处理事务的各个参与者响应try操作指示生成的try操作响应结果,并整合try操作响应结果的步骤之后,还包括:

26、检测try操作响应结果,当待处理事务的各个参与者存在任意try操作失败时,向待处理事务的各个参与者发出cancel操作指示;

27、获取待处理事务的各个参与者响应cancel操作指示生成的cancel操作响应结果;

28、根据cancel操作响应结果执行事务回滚逻辑。

29、进一步地,基于分库分表id将事务处理结果路由到微服务系统的数据库中的步骤,具体包括:

30、获取数据分片处理中间件中定义的分库分表规则;

31、根据分库分表规则和分库分表id选择匹配的数据库表;

32、将事务处理结果路由到匹配的数据库表中。

33、为了解决上述技术问题,本技术实施例还提供一种微服务集群分布式事务处理装置,采用了如下所述的技术方案:

34、一种微服务集群分布式事务处理装置,包括:

35、模块集成模块,用于在微服务系统中集成数据分片处理中间件和事务协调器,其中,数据分片处理中间件和事务协调器协同工作;

36、服务请求模块,用于获取客户端发起的服务请求,通过微服务系统中预设的切面层获取服务请求中的请求信息,并基于请求信息生成事务流水号;

37、逻辑处理模块,用于基于事务流水号获取待处理事务的业务数据,并执行服务请求中携带的事务处理逻辑,以对业务数据进行处理,得到事务处理结果;

38、try操作模块,用于通过事务协调器协调待处理事务的各个参与者针对事务处理结果执行try操作;

39、哈希取模模块,用于当各个参与者均完成try操作后,通过数据分片处理中间件对事务流水号进行哈希取模运算,得到待处理事务在微服务系统的数据库中的分库分表id;

40、数据路由模块,用于基于分库分表id将事务处理结果路由到微服务系统的数据库中。

41、为了解决上述技术问题,本技术实施例还提供一种计算机设备,采用了如下所述的技术方案:

42、一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如上述任一项所述的微服务集群分布式事务处理方法的步骤。

43、为了解决上述技术问题,本技术实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:

44、一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如上述中任一项所述的微服务集群分布式事务处理方法的步骤。

45、与现有技术相比,本技术实施例主要有以下有益效果:

46、本技术公开一种微服务集群分布式事务处理方法及其相关设备,属于大数据技术领域和金融科技领域。本技术在微服务系统中集成数据分片处理中间件和事务协调器,其中,数据分片处理中间件和事务协调器协同工作,获取客户端发起的服务请求,通过微服务系统中预设的切面层获取服务请求中的请求信息,并基于请求信息生成事务流水号,基于事务流水号获取待处理事务的业务数据,并执行服务请求中携带的事务处理逻辑,以对业务数据进行处理,得到事务处理结果,通过事务协调器协调待处理事务的各个参与者针对事务处理结果执行try操作,当各个参与者均完成try操作后,通过数据分片处理中间件对事务流水号进行哈希取模运算,得到待处理事务在微服务系统的数据库中的分库分表id,基于分库分表id将事务处理结果路由到微服务系统的数据库中。本技术通过集成数据分片处理中间件和事务协调器,实现了分布式事务处理的功能,通过切面层获取请求信息和生成事务流水号,以及协调参与者执行try操作,确保了事务的一致性和可靠性。同时,通过数据分片处理中间件和分库分表的方式,实现了对事务处理结果的存储和路由。

当前第1页 1 2
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1