全局事务服务 GTS(Global Transaction Service)用于实现分布式环境下,特别是微服务架构下的高性能事务一致性。可以与 RDS、MySQL、PostgreSQL 等数据源,Spring Cloud、Dubbo、HSF 及其他 RPC 框架,MQ 消息队列等中间件产品配合使用,轻松实现分布式数据库事务、多库事务、消息事务、服务链路级事务及各种组合。

为什么需要全局事务服务

一个完整的业务往往需要调用多个子业务或服务,随着业务的不断增多,涉及的服务及数据也越来越多,越来越复杂。传统的系统难以支撑,出现了应用和数据库等的分布式系统。分布式系统又带来了数据一致性的问题,从而产生了分布式事务。

产品架构

分布式事务是指事务发起者、资源管理器、事务协调者及资源分别位于不同的分布式系统的不同节点之上。

GTS 的架构如下图所示。

GTS 架构
  • GTS 服务端:即事务协调器。负责分布式事务的推进,管理事务生命周期。
  • GTS 客户端:即事务发起者。通过事务协调器,开启、提交、回滚分布式事务。同时还包含部分资源管理器组件,负责管理和控制资源,与 GTS 服务器进行交互。
  • 服务框架:GTS 可以和服务框架配合使用,管理服务框架中的事务。服务框架可以集成资源管理器组件,管理和控制资源。
  • 资源: 包括 RDS、DRDS、MySQL 和其它数据库事务,以及 MQ 消息事务。
说明 服务端的 GTS 相关配置通过内部组件进行下发或同步。

在单机数据库下很容易维持事务的 ACID(Atomicity、Consistency、Isolation 和 Durability)特性,但在分布式系统中并不容易,GTS 可以保证分布式系统中分布式事务的 ACID 特性。