XTS是一个分布式事务管理框架,用来解决大规模分布式环境下事务的最终一致性。
支付宝实际业务存在跨多服务 、跨多数据库(eg:账务、交易、订单等业务)等高并发场景,XTS用来处理跨DB环境下的事务一致性问题,保障在大规模分布式环境下,多服务、多数据库事务的最终一致性。
点击空白处退出提示
XTS是一个分布式事务管理框架,用来解决大规模分布式环境下事务的最终一致性。
支付宝实际业务存在跨多服务 、跨多数据库(eg:账务、交易、订单等业务)等高并发场景,XTS用来处理跨DB环境下的事务一致性问题,保障在大规模分布式环境下,多服务、多数据库事务的最终一致性。
XTS从架构上分为【Client端+Server端】两部分:
(1) Client端:提供分布式事务三个主要角色(发起方、参与者与事务管理器)的TCC协议逻辑写入和框架处理入口:
1、发起方: 分布式事务的发起方负责启动分布式事务,通过调用参与者的服务,将参与者纳入到分布式事务当中,并决定整个分布式事务是提交还是回滚。一个分布式事务有且只能有一个发起方。
2、参与者: 参与者提供分支事务服务。当一个参与者被发起方调用后,该参与者会被纳入到该发起方启动的分布式事务中,成为该分布式事务的一个分支事务。一个分布式事务可以有多个参与者。
3、事务管理器: 事务管理器是一个独立的服务,用于协调分布式事务,包括创建主事务记录、分支事务记录,并根据分布式事务的状态,调用参与者提交或回滚方法。
(2) Server端:负责【失败事务】的重试恢复和兜底。
主要功能:异常事务恢复 + 双11大促期间流量泄洪;
(1) Client端:负责通过 Java代码 模拟分布式事务【发起者和参与者】对应【TCC协议逻辑】的【写入和处理】。包括普通参与者、嵌套参与者之间的【并发/串行】处理能力,保障发起者调用【不同版本/不同框架】的参与者时,对应的 兼容性测试;
(2) Server端:负责构造大批量、多场景的【失败事务】数据,并保障系统恢复兜底能力的精准高效。
(3) 性能测试:模拟大促期间 & 热点时刻 的 流量压测,评估 系统性能 是否需要继续优化;
(4) 异常事务测试:模拟空回滚、悬挂等异常事务,并保障系统容灾能力;
(5) Web测试:Selenium 实现用户 web 页面的自动化回归测试;
技术栈:Java、 Sql、 Shell、 Selenium 、Linux




评论