在企业级互联网架构专场中,来自阿里巴巴的中间件技术专家厉启鹏(寈峰)为现场的听众带来了题为《GTS-分布式事务全新解决方案》的精彩分享。在本次分享中,他重点阐述了GTS如何帮助解决分布式事务问题,包括产品GTS的基本原理、核心优势、应用场景等;介绍了GTS的商业化情况,包括应用案例、商业化后给用户带来的价值提升等。
数十款阿里云产品限时折扣中,赶快点击这里,领劵开始云上实践吧!
直播视频回顾
PPT下载请点击
以下内容根据现场分享整理而成。
产品简介
GTS是行业内的第一款也是唯一的一款,专注于解决分布式事务问题的中间件。GTS被定义为一站式的分布式事务解决方案,立足点是解决所有的事务问题。应用开发中遇到的事务问题大致分为四个方面:跨库事务、服务化事务、消息事务、混合事务。
GTS与其他解决方案对比
在GTS出现之前,事务问题的解决方案主要有XA方案,补偿方案,消息方案等。
·XA方案:优点为接口标准化。缺点是阻塞协议,影响系统吞吐和可伸缩性,性能不理想,很难满足互联网大并发需求,缺乏容错机制。
·补偿方案:优点为符合业务需求。缺点是实现复杂,各种异常情况难于处理,要求每个方法实现一个反向的回滚接口,运维成本高,扩现移植性不理想。
·消息方案:优点为实现相对简单。缺点是要求应用与消息系统紧耦合,增加开发成本,要求业务实现幂等。最终一致性,适用场景受限。
GTS优势
GTS的优势总结起来包括四个方面:
·完整解决方案。可以解决分布式数据库、跨数据库、服务化、消息系统场景下的分布式事务问题。
·侵入性极低。一行注解即可实现事务接入,也提供 API 接入模式使用门槛低,节省开发和运维成本。
·性能超强。高达传统分布式事务 10 倍性能,4c8g集群可达1.5万TPS。热点数据高效处理,无惧数据冲突。
·高可用。支持应用宕机、节点故障等各类异常情况下均可保持数据严格一致,支持同城主备及两地三中心部署。
产品历史
GTS于5月21日正式商用,首发1月内购买,低至七折。GTS 实例规格分为 5 TPS(免费版)、20 TPS、100 TPS、200 TPS、500 TPS、2000 TPS 和 5000 TPS。
功能架构
总体架构
上图为总体架构图,左侧为GTS服务端,为三个节点的组成的集群;右侧为客户端。GTS事务模型
GTS的客户端包含两部分:GTS Client和RM。在全局事务开始时,GTS Client会连接服务端,服务端会返回xid给Client;Client端将xid传输给涉及到全局事务的所有RM;之后,全局事务中的每一个RM需要开启一个分支事务,RM需要向服务端获取一个分支事务的ID号;之后,RM会汇报状态给服务端,服务端会知道每一个分支事务的执行情况,然后根据情况返回给Client端,以完成数据提交工作。
GTS与微服务集成架构
容错机制
GTS允许服务端出现宕机情况,它可以保证这种情况下事务的一致性。如果应用是多机部署的,在应用节点宕机的情况下GTS仍然可以保证数据的一致性。
·服务节点宕机
·应用节点宕机
扩展机制
AT&MT
GTS提供AT模式(自动模式)和MT(手动)两种模式。AT模式可以覆盖90%以上的场景,也是我们首先推荐使用的模式。可以自动回滚、对业务无侵入。MT模式是GTS对TCC的一种支持,主要适用于多个系统集成的场景。两种模式可以组合使用。
应用场景
解决跨数据库的事务问题
解决微服务调用的事务问题
解决多系统集成的事务问题
解决混合事务问题
实践操作
AT模式
MT模式
在不同的阶段,GTS会调用不同的方法,当方法调用失败的时候GTS会有一定的策略去处理,保证方法的正确实行。