[发明专利]一种分布式事务上下文在路由层传递的实现方法与装置在审
申请号: | 202011276567.3 | 申请日: | 2020-11-16 |
公开(公告)号: | CN112395104A | 公开(公告)日: | 2021-02-23 |
发明(设计)人: | 唐冬雪;滕达;程冲;张丹枫 | 申请(专利权)人: | 中国工商银行股份有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F9/46 |
代理公司: | 北京三友知识产权代理有限公司 11127 | 代理人: | 任默闻;孙乳笋 |
地址: | 100140 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 事务 上下文 路由 传递 实现 方法 装置 | ||
本发明提供了分布式事务上下文在路由层传递的实现方法与装置,方法包括:在事务管理器中登记主事务下的子事务的ID;对子事务进行try阶段的方法的调用,以使子事务根据自身的类型执行调用,子事务的类型包括:普通TCC服务和路由服务;调用执行成功后通过事务管理器发起二阶段确认。本申请通过兼容适配的方式将事务上下文透传到路由服务的下层子事务,从而保证多个服务节点之间的数据一致性。
技术领域
本申请属于分布式系统处理技术领域,具体地讲,涉及一种分布式事务上下文在路由层传递的实现方法与装置。
背景技术
在分布式事务中,事务的参与者、支持事务的服务器、资源服务器以及事务管理器位于分布式系统的不同节点上,部分应用的事务交易链路中存在路由服务,即该服务不是事务调用但是作为一个中间层调用其他的事务服务的情况。TCC(Try-Confirm-Cancel)是业界使用一种分布式事务模型,能够解决架构转型后的分布式事务问题,在保证隔离性的同时提供高性能。通过对业务逻辑的分解,TCC模式将业务逻辑分解为两个阶段,一阶段是try阶段,二阶段是confirm或cancel阶段:
·Try:完成所有的业务检查,预留必须的业务资源,需要保证Try完成后,Confirm一定能成功。
·Confirm:真正执行的业务逻辑,不做任何业务检查,只使用try阶段预留的业务资源。
·Cancel:释放try阶段预留的业务资源。
但是在应用调用的事务链路中除了普通的事务,可能会调用到路由服务,由路由服务再发起下层事务的调用,因此事务框架需要提供兼容能力,通过兼容适配的方式将事务上下文透传到路由服务的下层子事务,从而保证多个服务节点之间的数据一致性。
发明内容
本申请提供了一种分布式事务上下文在路由层传递的实现方法与装置,以至少解决二阶段分布式事务框架下事务交易链路中存在路由层服务情况下框架的兼容适配问题。
根据本申请的一个方面,提供了一种分布式事务外行下文在路由层传递的实现方法包括:
在事务管理器中登记主事务下的子事务的ID;
对子事务进行try阶段的方法的调用,以使子事务根据自身的类型执行调用,子事务的类型包括:普通TCC服务和路由服务;
调用执行成功后通过事务管理器发起二阶段确认。
在一实施例中,对子事务进行try阶段的方法的调用包括:
对于单层的子事务,直接对方法进行调用;
对于多层的子事务,通过localTxId确定当前层的子事务,并在调用下一层子事务时将事务上下文中的localTxId设置为下一层子事务的ID。
在一实施例中,对子事务进行try阶段的方法的调用还包括:
当所有子事务调用完成时,恢复事务上下文中的localTxId为当前层的子事务的ID。
在一实施例中,调用执行成功后通过事务管理器发起二阶段确认,包括:
将被调用的子事务的ID放入事务上下文中的localTxId并重设事务上下文的方法字段;
针对路由服务类型的子事务,获取try方法字段信息中的方法名,并根据方法名找到二阶段调用方法;
通过反射调用路由将事务信息传递至子事务,以使子事务根据二阶段调用方法执行二阶段确认。
在一实施例中,调用执行成功后通过事务管理器发起二阶段确认,还包括:
针对普通TCC服务类型的子事务,获取二阶段方法为该子事务的确认方法;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国工商银行股份有限公司,未经中国工商银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011276567.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种铝合金模具制作用强度检测装置
- 下一篇:一种麻醉科药剂配比设备