System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于数据处理,具体涉及一种分布式事务管理方法及系统。
技术介绍
1、随着微服务系统的发展,目前大部分应用程序都由多个松散耦合、可独立部署的微服务组成。微服务之间互相协调、互相配合,为用户提供最终价值。微服务通常具有自己的堆栈,通过rest api、事务流、消息代理进行通信,通过业务流执行业务处理。这就导致以下问题:需要在微服务的业务流中编写指定的事务逻辑才能实现指定的事务,所以开发人员在开发业务流时,也需要考虑事务流与业务流之间的数据传输,增加了开发人员的工作量,降低了微服务的开发效率。
技术实现思路
1、针对现有技术中的缺陷,本专利技术提供一种分布式事务管理方法及系统,降低了开发人员的工作量,提高了微服务的开发效率。
2、第一方面,一种分布式事务管理方法,在微服务上执行,包括:
3、当检测到微服务的业务流中包括事务注解时,定义微服务为服务启动者,根据事务注解向事务自动处理服务端申请全局事务;
4、接收事务自动处理服务端返回的全局事务id;
5、根据全局事务id执行本地的事务流;
6、当存在下游微服务时,将全局事务id透传给下游微服务;
7、当接收到上游微服务透传的全局事务id时,根据全局事务id向事务自动处理服务端申请子事务;
8、接收事务自动处理服务端返回的子事务id;
9、根据子事务id执行本地的事务流。
10、进一步地,在执行本地的事务流之后,还包括:
>11、在数据库中创建事务记录任务;
12、记录接收到的全局事务id和子事务id;
13、当拦截到业务更新命令或业务更新缓存命令时,记录拦截前的数据和业务流执行后的数据;数据包括数据库中的数值、业务缓存数据和有效期。
14、进一步地,在执行本地的事务流之后,还包括:
15、向事务自动处理服务端上传事务流的执行结果。
16、进一步地,在执行本地的事务流之后,还包括:
17、当存在上游微服务时,将事务流的执行结果返回给上游微服务;
18、服务启动者接收所有下游微服务返回的执行结果;
19、如果全部执行结果为成功,向事务自动处理服务端发起事务提交请求,由事务自动处理服务端进行事务提交;
20、如果存在至少一个执行结果为失败时,向事务自动处理服务端发起事务回滚请求,由事务自动处理服务端进行事务回滚。
21、第二方面,一种分布式事务管理系统,包括:
22、事务自动处理客户端:加载在微服务上;事务自动处理客户端用于当检测到微服务的业务流中包括事务注解时,定义该微服务为服务启动者,根据事务注解向事务自动处理服务端申请全局事务;根据事务自动处理服务端返回的全局事务id执行本地的事务流;还用于当存在下游微服务时,将全局事务id透传给下游微服务;还用于当接收到上游微服务透传的全局事务id时,根据全局事务id向事务自动处理服务端申请子事务;根据事务自动处理服务端返回的子事务id执行本地的事务流;
23、事务自动处理服务端:根据来自事务自动处理客户端的申请生成全局事务id或子事务id,返回给事务自动处理客户端。
24、进一步地,还包括:
25、事务持久化单元:加载在微服务上;事务持久化单元用于在数据库中创建事务记录任务;记录接收到的全局事务id和子事务id;当拦截到业务更新命令或业务更新缓存命令时,记录拦截前的数据和业务流执行后的数据;数据包括数据库中的数值、业务缓存数据和有效期。
26、进一步地,事务自动处理客户端还用于:向事务自动处理服务端上传事务流的执行结果。
27、进一步地,事务自动处理客户端还用于:当存在上游微服务时,将事务流的执行结果返回给上游微服务;服务启动者接收所有下游微服务返回的执行结果;如果全部执行结果为成功,向事务自动处理服务端发起事务提交请求;如果存在至少一个执行结果为失败时,向事务自动处理服务端发起事务回滚请求;
28、事务自动处理服务端还用于:当接收到事务提交请求时,读取本地对应的所有微服务的执行结果;如果全部执行结果为成功,提交全局事务对应的所有子事务;当接收到事务回滚请求时,读取本地对应的所有微服务的执行结果;如果存在至少一个执行结果为失败时,将全局事务对应的所有子事务回滚掉。
29、进一步地,事务自动处理服务端还用于:
30、定时清除过期的已完成的事务记录任务;
31、检测长事务和事务死锁。
32、进一步地,还包括:
33、事务后台管理单元:用于完成微服务的登录管理和权限管理、记录事务流的执行数据、记录长事务、事务统计、事务管理。
34、由上述技术方案可知,本专利技术提供的分布式事务管理方法及系统,对微服务的业务没有侵入,使得微服务的业务与事务分离,开发人员不需要关心事务,只需要在业务中添加指定的事务注解即可,使得微服务数据之间保持acid特性,降低了开发人员的工作量,提高了微服务的开发效率。
本文档来自技高网...【技术保护点】
1.一种分布式事务管理方法,其特征在于,在微服务上执行,包括:
2.根据权利要求1所述分布式事务管理方法,其特征在于,在执行本地的事务流之后,还包括:
3.根据权利要求1所述分布式事务管理方法,其特征在于,在执行本地的事务流之后,还包括:
4.根据权利要求3所述分布式事务管理方法,其特征在于,在执行本地的事务流之后,还包括:
5.一种分布式事务管理系统,其特征在于,包括:
6.根据权利要求5所述分布式事务管理系统,其特征在于,还包括:
7.根据权利要求5所述分布式事务管理系统,其特征在于,
8.根据权利要求7所述分布式事务管理系统,其特征在于,
9.根据权利要求5所述分布式事务管理系统,其特征在于,
10.根据权利要求9所述分布式事务管理系统,其特征在于,还包括:
【技术特征摘要】
1.一种分布式事务管理方法,其特征在于,在微服务上执行,包括:
2.根据权利要求1所述分布式事务管理方法,其特征在于,在执行本地的事务流之后,还包括:
3.根据权利要求1所述分布式事务管理方法,其特征在于,在执行本地的事务流之后,还包括:
4.根据权利要求3所述分布式事务管理方法,其特征在于,在执行本地的事务流之后,还包括:
5.一种分布式...
【专利技术属性】
技术研发人员:毛会懂,张瑞川,林钦和,
申请(专利权)人:上海契胜科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。