GTS 今年双 11 的成绩
--------------
今年 2684 亿的背后,有一个默默支撑,低调到几乎被遗忘的中间件云产品——GTS(全局事务服务,Global Transaction Service),稳稳地通过了自 2014 年诞生以来的第 5 次“大考”。
> 2019 年 11 月 1 日至 12 日,GTS 日均处理分布式事务数量达 **亿级** ,每天峰值 TPS 达 **万级** 。
这背后最重要意义在于:成绩是在给业务应用的设计和开发带来 **0 负担** 的前提下得到的。
GTS 带来的价值
---------
随着企业的发展,企业业务架构面临数据、服务的分布化,几乎无可避免地要遇到分布式架构带来的数据一致性问题。
GTS 开创性地把分布式事务问题从业务中剥离出来,作为一个独立的技术切面来单独管理,以服务的形式给构建在云上的应用提供简单、易用、高效的分布式事务解决方案。
GTS 给业务应用带来的价值体现在以下几个方面:
* 架构复杂度降低:分布式事务这个 **切面** 的技术问题,全部 **收敛** 到 GTS 提供的服务来解决。
* 设计和开发成本减轻:业务逻辑的设计和开发,完全不需要针对是否涉及分布式事务而做任何额外的事情,对业务 **0 侵入** 。
* 项目交付、迭代速度加快:归因于上述两点,项目得以很快交付和迭代。GTS 赋予业务应用 **快速试错** 的能力,在这个商业机会瞬息万变的时代,显得尤为重要。
设想一个典型的云原生企业应用的成长路径:
![1](https://yqfile.alicdn.com/7888c5ed919d0482ee68bea6d5b1ee245c4625b2.png)
* 1.0:单体应用,快速上线,这个时候完全不涉及分布式事务。
* 2.0:单个数据库无法支撑,数据分布到多个数据库,产生分布式事务问题。
* 3.0:微服务化,进一步产生跨服务的分布式事务。
* 4.0:跨应用的整合,成为 SaaS 或 FaaS 的平台,在更大的范围,产生分布式事务问题。
基于 GTS 提供的分布式事务服务,企业发展各阶段产生的不同场景下的数据一致性问题,可以得到一站式的解决。这使得业务可以平滑自然地,像搭积木一样成长起来。
从上面示例可以看到:GTS 实际上是把分布式事务(或者说分布式场景下的数据一致性)能力,作为一种 **云原生** 的服务,提供给生长在云上的应用,让分布式事务不再成为业务要面临的一个令人头疼的问题,而成为一种可以弹性伸缩,按需取用的服务能力。
GTS 的原理和创新
----------
下面,从几个方面来大体介绍 GTS 的原理和创新。
首先,GTS 把分布式事务定义为由若干本地事务(分支)组成的全局事务。被全局事务管理的全部分支,将在协调器的协调下,保证一起成功或一起回滚。
![2](https://yqfile.alicdn.com/b8a6815270c4b0311d602a8c63488bea03bba8b9.png)
其次,GTS 定义了一个事务模型,把整个全局事务过程模型化为 TM、RM、TC 三个组件之间协作的机制。
* **Transaction Coordinator (TC):** 事务协调器,维护全局事务的运行状态,负责协调并驱动全局事务的提交或回滚。
* **Transaction Manager (TM):** 控制全局事务的边界,负责开启一个全局事务,并最终发起全局提交或全局回滚的决议。
* **Resource Manager (RM):** 控制分支事务,负责分支注册、状态汇报,并接收事务协调器的指令,驱动分支(本地)事务的提交和回滚。
![3](https://yqfile.alicdn.com/dc17d09544fdd92f5fd4995cd67757e20ef68720.png)
一个典型的分布式事务过程:
1. TM 向 TC 申请开启一个全局事务,全局事务创建成功并生成一个全局唯一的 XID。
2. XID 在微服务调用链路的上下文中传播。
3. RM 向 TC 注册分支事务,将其纳入 XID 对应全局事务的管辖。
4. TM 向 TC 发起针对 XID 的全局提交或回滚决议。
5. TC 调度 XID 下管辖的全部分支事务完成提交或回滚请求。
第三,GTS 创新地基于 SQL 解析实现对业务无侵入的自动补偿回滚机制。这种机制,GTS 将其命名为 Auto Transaction (AT) 模式。基本工作原理如下:
GTS 把全局事务分为两个阶段:**执行阶段** 和 **完成阶段** 。
**执行阶段:**
GTS 的 JDBC 数据源代理通过对业务 SQL 的解析,把业务数据在更新前后的数据镜像组织成回滚日志,利用 **本地事务** 的 ACID 特性,将业务数据的更新和回滚日志的写入在同一个 **本地事务** 中提交。
这样,可以保证:任何提交的业务数据的更新一定有相应的回滚日志存在。
![4](https://yqfile.alicdn.com/edaa86598cac088c9330e407b210f4217be62d68.png)
基于这样的机制,分支的本地事务便可以在全局事务的 **执行阶段** 提交,马上释放本地事务锁定的资源。
**完成阶段:**
* 如果 TM 发出的决议是全局提交,此时分支事务此时已经完成提交,不需要同步协调处理(只需要异步清理回滚日志),**完成阶段** 可以非常快速地完成。
![5](https://yqfile.alicdn.com/3c1e06b1ac9794b846dd2cf72d6db15f6b3013d5.png)
* 如果 TM 发出的决议是全局回滚,RM 收到协调器发来的回滚请求,通过 XID 和 Branch ID 找到相应的回滚日志记录,通过回滚记录生成反向的更新 SQL 并执行,以完成分支的回滚。
![6](https://yqfile.alicdn.com/f02b3a96f34de824dae7dbd94f55e39eb45876af.png)
最后,GTS 通过事务协调器集群以及对业务应用节点的容错,实现一个拒绝单点故障的高可用服务。
![7](https://yqfile.alicdn.com/b3fd2439a0838a8e457d978fbde63c313a197669.png)
一方面,GTS 服务集群机制,保障任意服务节点宕机,可以其他节点无缝接管。
另一方面,应用任意节点的宕机,相应事务分支的请求也会路由到连接相同数据库的其他节点上,不影响全局事务的完整执行。
分布式事务模式融合及标准化(保护)
-----------------
截止目前,还没有任何一种分布式事务的技术方案,可以满足所有场景的问题。GTS 的 AT 模式适用于绝大部分常见场景,但仍有一些场景更适合于使用业界其他的分布式事务解决方案。GTS 会把各类解决方案融合到 GTS 提供的云服务框架中,为云原生应用提供一站式的分布式事务服务。
![8](https://yqfile.alicdn.com/11fc8d25da546e69b1d83236540df061753328e1.png)
这是 GTS 的抽象出的事务框架。通过这个抽象,分布式事务得以从整体架构中剥离出来,形成一个单独的技术切面,作为服务提供给应用。
简单来说,基于这个框架的应用,其分布式事务问题,就收敛到基于 RM 的分支事务机制和 TC 提供的稳定、可靠的服务中。分而治之,才能更有效地解决问题。
当前分布式应用层面,最具代表性的事务模式有 4 种,分别是 AT、TCC、Saga 和 XA,这些模式各有优缺点和适用的场景。
下面列出 4 种事务模式的优劣,以及在 GTS 的事务框架中的映射。
### AT
**优势:** 业务无侵入;轻量,不依赖数据库的高级特性;回滚较少的场景性能高。
**劣势:** 隔离性不高,目前只能支持到接近 _读已提交_ 的程度,更高的隔离级别,实现成本将非常高。
![9](https://yqfile.alicdn.com/eb8c4c8cbcc3bdd25a42f5d975bb2d1af3afd393.png)
### TCC
**优势:** 适用场景广泛;隔离性和性能都可以做极致优化。
**劣势:** 业务侵入性非常高。
![10](https://yqfile.alicdn.com/087e5c3a00091ee574f2844b57946b1f8482ef24.png)
### Saga
**优势:** 长事务。
**劣势:** 有一定业务侵入性;隔离性差。
![11](https://yqfile.alicdn.com/7e05d4f014e59baffe592c653718562600adb137.png)
### XA
**优势:** 业务无侵入;隔离性好。
**劣势:** 阻塞协议。
![12](https://yqfile.alicdn.com/1c34683ecebe45b926f79f033cb097cf260e77a0.png)
GTS 与开源
-------
为了更好地构建一个云原生的分布式事务标准,2019 年初,GTS 选择了开源,发起了开源项目 [SEATA](https://yq.aliyun.com/go/articleRenderRedirect?url=https%3A%2F%2Fgithub.com%2Fseata%2Fseata)(曾用名 FESCAR)。项目开源不到 1 年时间,收获 STAR 数已经突破 1.2 万,Contributor 超过 120 名,获得社区的广泛关注和认可。
分布式事务一直以来都可以称得上是世界性难题,希望可以通过 SEATA 这个开放的平台,聚集全世界的智慧来给这道难题交上一份让人满意的答卷。
进一步,GTS 将这份答卷转化为阿里云上高效、稳定、可靠的服务,赋能给广大云原生开发者。
总结
--
GTS 自从 2014 年诞生于阿里巴巴中间件的 5 年来,从支撑集团内第一个业务方开始,经历了从内部到云产品化,从封闭到开源,从单一模式到兼容并蓄和标准化,一直坚定地走在分布式事务领域的最前沿。
GTS 的目标是云原生时代,分布式事务的全面解决方案,任何分布式事务需求,在 GTS 上都能找到满意的答案。
[原文链接](https://yq.aliyun.com/articles/737742?utm_content=g_1000091591)
本文为阿里云内容,未经允许不得转载。
分享到:
相关推荐
* 事务模型:GTS 的事务模型主要包括全局事务、分支事务等,通过事务模型可以实现分布式事务的管理和控制。 * 事务协议:GTS 的事务协议主要包括 RMR、RMMR、RMG 等,通过事务协议可以实现分布式事务的通信和协调。 ...
微服务架构下分布式事务解决方案的主要困难有三个方面:第一,单体应用拆分为分布式系统后,进程间的通讯机制和故障处理措施变的更加复杂。第二,系统微服务化后,一个看似简单的功能,内部可能需要调用多个服务并...
该机制结合了两阶段提交的原理和异步通信的优点,既保证了事务的原子性和一致性,又避免了长时间锁定资源的问题。 - **应用场景**:GTS适用于各种需要保证数据一致性的场景,尤其是在复杂的微服务架构中。例如,在...
Meepo则是借鉴了GTS的设计思想和ByteJta的技术基础,构建的一个分布式事务框架。它可能包含以下几个关键组件和特性: 1. **事务协调器(Coordinator)**:负责整个分布式事务的调度和协调,监控事务的状态,决定...
【阿里GTS微服务架构下分布式事务解决方案】 随着微服务架构的广泛应用,它将...对于那些正在探索微服务架构的公司来说,GTS提供了一个强大且可靠的工具,帮助他们克服分布式事务的难题,实现服务的高效和稳定运行。
阿里巴巴中间件技术专家 厉启鹏(寈峰)在2018云栖大会·武汉峰会中做了题为《GTS-分布式事务全新解决方案》的分享,就产品简介、功能架构、典型场景及实践操作等方面的内容做了深入的分析。
### 分布式事务解决方案FESCAR ...综上所述,FESCAR作为一款高效的分布式事务解决方案,不仅解决了微服务架构下面临的分布式事务挑战,还通过其独特的设计理念和技术实现,降低了开发者的负担,提升了系统的整体性能。
阿里分布式事务解决方案GTS jar包下载, txc-client-2.0.72.JAR ,(目前阿里已经开源分布式事务 seata ,具体整合可以看博客)
微服务架构下,分布式事务是实现跨服务操作一致性的重要手段,尤其在当今互联网行业中,...在追求微服务架构带来的灵活性和可扩展性的同时,必须妥善处理分布式事务这一关键问题,以确保系统的稳定性和数据的一致性。
FESCAR的核心组件包括Transaction Coordinator (TC)、Transaction Manager (TM) 和 Resource Manager (RM),这三个部分共同协作实现了分布式事务的管理和执行: 1. **Transaction Coordinator (TC):** 负责全局事务...
Seata通过全局事务服务(GTS)协调各个服务节点的本地事务,以实现分布式环境下的ACID特性。Seata文档提供了详细的配置和使用指南,帮助开发者解决实际开发中的分布式事务问题。 总的来说,分布式事务处理是分布式...
分布式事务框架Fescar在SpringCloud环境下的应用实践是一个重要的技术话题,特别是在微服务架构盛行的今天。...对于开发人员来说,理解和掌握Fescar的原理及应用,将对提升分布式系统设计能力大有裨益。
阿里云专有云企业版V3.5.2全局事务服务GTS技术白皮书是阿里云推出的一个全局事务服务解决方案,旨在帮助企业快速构建可靠的分布式事务处理系统。该解决方案基于阿里云的云计算技术,提供了高可用性、高性能和高扩展...
Seata将ACID(原子性、一致性、隔离性、持久性)事务特性扩展到了分布式环境,通过全局事务服务(Global Transaction Service,GTS)实现跨服务的分布式事务处理,确保数据的一致性。 Feign是Spring Cloud生态中的...
总结来说,分布式事务处理是复杂且关键的技术,SpringCloud和其他微服务框架通过各种模式和机制来确保数据的一致性和事务的完整性。理解这些概念和技术,对于构建健壮的分布式系统至关重要。Alibaba Seata作为其中的...
* 电子商务平台:GTS可以帮助电子商务平台简化分布式事务管理,提高系统可用性和性能。 * 支付系统:GTS可以帮助支付系统简化分布式事务管理,提高系统可用性和性能。 * 金融系统:GTS可以帮助金融系统简化分布式...
全局事务服务 GTS 是阿里云提供的一项功能强大的事务服务,旨在帮助用户管理和维护分布式事务。GTS 可以帮助用户实现高可用性和高性能的事务处理,满足用户对事务处理的需求。 本用户指南旨在为用户提供详细的操作...
"阿里云专有云企业版V3.5.2全局事务服务GTS产品...阿里云专有云企业版V3.5.2全局事务服务GTS产品简介提供了一个功能强大、灵活和可扩展的分布式事务系统解决方案,旨在帮助企业构建高可用、高性能的分布式事务系统。
全局事务服务GTS是一个分布式事务管理系统,旨在帮助用户管理和监控分布式事务。GTS提供了统一的事务管理接口,支持多种编程语言和数据库管理系统。 架构设计 GTS架构设计分为三个层次:客户端层、应用服务器层和...