分布式事务(Distributed Transaction-eXtended,简称 DTX)是蚂蚁集团自主研发的金融级分布式事务中间件,支持跨数据库、跨服务以及混合的方式处理分布式应用,具备多种接入模式和金融级配套功能,本文将主要介绍分布式事务的功能特性。
核心功能
分布式事务拥有三大核心功能:跨数据库、跨服务以及混合分布式事务。
跨数据库分布式事务
当业务规模增大,单库单表无法满足业务需求时,自然就会出现分库分表的情况。但是,单机事务又不能保证分库后的事务属性,分布式事务几乎无法避免。分布式事务可以让应用轻松具备跨库分布式事务处理能力,像使用单机数据库事务一样,透明地使用分布式事务。
跨服务的分布式事务
在基于 SOA(Service-Oriented Architecture,面向服务架构)的分布式应用环境下,系统按照功能解耦,拆分成不同的微服务,一项业务往往会涉及多个服务之间的调用。因此,为了保障业务完整,需要保证各调用服务间的数据一致性。分布式事务同样支持跨服务的分布式事务,并且可以很方便的与 SOFABoot、Spring Cloud、Dubbo 等框架打通,实现业务链路级别的分布式事务。
混合分布式事务
在一个大规模的分布式应用环境下,除了常见的微服务、数据库资源之外,还会涉及到消息队列、缓存等系统资源的使用。同时,依然需要保证这些资源间访问的数据的一致性。分布式事务支持在同一个分布式事务中引入数据库、服务、消息队列等不同类型的资源,并且支持混合接入模式。
接入模式
SOFAStack 的分布式事务产品随着业务的多样性发展而演变沉淀了多种接入模式,针对科技金融下多种业务场景灵活适配。
TCC 模式
TCC(Try-Confirm-Cancel)是一种高性能的分布式事务接入方案,该模式提供了更多的灵活性,几乎可满足任何您能想到的事务场景。TCC 模式提供自定义补偿型事务、自定义资源预留型事务、消息事务等场景,用户可以介入两阶段提交的过程,以达到特殊场景下的自定义优化及特殊功能的实现。
FMT 模式
为了解决 TCC 模式的易用性问题,分布式事务推出了框架管理事务模式(Framework-managed transactions,简称 FMT)。FMT 是一种无侵入的分布式事务解决方案,该模式解决了分布式事务的易用性问题,最大的特点是易于使用、快速接入以及对业务代码无侵入。
SAGA 模式
基于 Hector & Kenneth 发表论⽂ Sagas(1987)理论的长事务解决方案,在 Saga 模式中,业务流程中每个参与者都提交本地事务,当出现某一个参与者失败则补偿前面已经成功的参与者。该模式适用于业务流程长、业务流程多、参与者包含其它公司或老系统服务等场景。优势是一阶段提交本地事务无锁,事件驱动架构,参与者可异步执行,高并发高吞吐;补偿服务易于实现或老系统本身就有补偿(冲正)服务;支持服务编排、有可视化的设计器和执行轨迹监控。
XA 模式
高性能的标准 XA 事务方案,基于标准 XA 实现,消除与 JEE 开发相关的日益复杂的问题,帮助传统企业的业务无缝上云以及服务化拆分。并可以与蚂蚁集团自研数据库 OceanBase 共同打造实时数据一致性的整体解决方案。
金融级配套功能
沉淀蚂蚁集团历练多年的精粹,全方位的金融企业级能力为科技金融保驾护航。
隔离性保障
多层次全链路的纵深防御能力,金融级数据隔离能力,高度保障数据安全。
性能推进模式(Performance Bursting)
在日常高性能运转的基础上,通过性能推进模式来提升处理能力,在不改变底层基础设施的前提下从容应对峰值事务交易。
云端恢复机制
提供完备的云端服务功能,帮助业务应用在出现异常事务时进行自动恢复,避免业务损失。