GTS--阿里巴巴分布式事务全新解决方案
现代IT应用中,服务化SOA作为主流的技术架构被广泛应用到各种信息系统。原来一个系统被分拆成若干个服务的集合,产生了跨服务调用的分布式事务问题。随着Dubbo、SpringCloud等微服务框架的流行,服务被进一步细分,跨服务调用以及服务的嵌套调用越来越广泛。分布式事务已经成为现代分布式系统中必须面对并解决的难题。为此,今天给大家介绍下阿里巴巴为解决服务调用中的事务问题推出的解决方案GTS。
1 GTS简介
全局事务服务(GTS,Global Transaction Service)是一款高性能、高可靠、接入简单的分布式事务中间件,可以为多服务调用或跨数据库访问中产生的事务问题提供一站式解决方案。其主要包括客户端、资源管理器和事务协调器三部分。客户端主要完成事务的发起与结束。资源管理器,完成分支事务的开启、提交、回滚等操作。事务协调器是GTS的服务端,主要负责分布式事务的整体推进,事务生命周期的管理。
2 应用场景
GTS可应用在涉及服务调用和跨数据库操作的多个领域,包括但不限于金融支付、电信、电子商务、快递物流、广告营销、社交、即时通信、手游、视频、物联网、车联网等,典型的应用场景如下:
2.1 解决微服务化的事务问题
目前微服务理念被广泛应用到各IT系统的设计中。共享出行作为近几年现象级应用极大的方便了大家生活。其系统大多基于微服务理念设计,被划分为众多服务,如车况服务、优惠券服务、运维服务、车锁服务、订单服务、支付服务、用户服务等。一个简单的借车业务需要调用车况服务进行检测,调用订单服务生成订单,还需要调用用户服务、车锁服务、运维服务。如果车锁服务调用失败,用户无法使用,必须要回滚订单、车况等服务。可见微服务系统中服务调用非常频繁,而且需要数据的强一致性。GTS通过与dubbo、EDAS、SpringCloud等主流RPC框架无缝集成,可以很好解决服务调用的一致性问题。
2.2 解决调用第三方服务的过程中产生的事务问题
信息系统中很多操作可能需要调用第三方服务才能完成。例如在金融领域,客户贷款通常包括授信和支用申请两个流程,由金融公司和银行的两套独立系统共同完成。典型放款业务一般要调用本地的信用核心、风控中心、额度中心3个服务完成资产评估,然后还需要调用银行系统的身份校验和支用服务才能完成最终的放款,调用需要严格一致。一旦某个服务调用失败,除回滚本地服务外还需要回滚银行系统的两个服务。通过GTS的MT模式可以保证这种场景下第三方服务调用状态的一致行。
2.3 解决跨消息事务问题
有些系统在调用服务的同时, 也会使用消息队列(MQ)。GTS可以和MQ消息队列打通,解决跨消息事务的一致性问题。一个典型的场景是在订票系统中,当用户进行订票操作后,订票系统会调用订单服务、支付服务,同时向MQ发送订票结果。GTS可以保证三个操作的一致性性,如果发送消息失败GTS可以回滚前两次服务调用。
2.4解决跨数据库的事务问题
大型分布式系统往往涉及的业务非常多,数据可能存储到多个数据库中。业务操作可能需要跨多个数据库甚至是异构数据库才能完成(如一个业务操作可能需要同时向mysql和drds两个数据库中更新数据)。GTS可以很好的解决跨库的分布式事务,保证数据的强一致行。
GTS--阿里巴巴分布式事务全新解决方案的更多相关文章
- 分布式事务,EventBus 解决方案:CAP【中文文档】
前言 很多同学想对CAP的机制以及用法等想有一个详细的了解,所以花了将近两周时间写了这份中文的CAP文档,对 CAP 还不知道的同学可以先看一下这篇文章. 本文档为 CAP 文献(Wiki),本文献同 ...
- 分布式事务,EventBus 解决方案:CAP【中文文档】(转)
出处:http://www.cnblogs.com/savorboard/p/cap-document.html 前言 很多同学想对CAP的机制以及用法等想有一个详细的了解,所以花了将近两周时间写了这 ...
- cap理论与分布式事务的解决方案
现在很火的微服务架构所设计的系统是分布式系统.分布式系统有一个著名的CAP理论,即一个分布式系统要同时满足一致性(Consistency).可用性(Availablility)和分区容错(Partit ...
- [转帖]分布式事务之解决方案(XA和2PC)
分布式事务之解决方案(XA和2PC) https://zhuanlan.zhihu.com/p/93459200 3. 分布式事务解决方案之2PC(两阶段提交) 针对不同的分布式场景业界常见的解决方案 ...
- 【转帖】分布式事务之解决方案(XA和2PC)
分布式事务之解决方案(XA和2PC) https://zhuanlan.zhihu.com/p/93459200 博彦信息技术有限公司 java工程师 3. 分布式事务解决方案之2PC(两阶段提交 ...
- 【转】分布式事务,EventBus 解决方案:CAP【中文文档】
[转]分布式事务,EventBus 解决方案:CAP[中文文档] 最新文档地址:https://github.com/dotnetcore/CAP/wiki 前言 很多同学想对CAP的机制以及用法等想 ...
- 分布式事务框架&解决方案参考
两种开源解决方案框架介绍: https://blog.csdn.net/zyndev/article/details/79604395#_97 LCN: https://www.jianshu.com ...
- 分布式事务之解决方案(TCC)
4. 分布式事务解决方案之TCC 4.1. 什么是TCC事务 TCC是Try.Confirm.Cancel三个词语的缩写,TCC要求每个分支事务实现三个操作 :预处理Try.确认Confirm.撤销C ...
- 分布式事务之解决方案(XA和2PC)
3. 分布式事务解决方案之2PC(两阶段提交) 针对不同的分布式场景业界常见的解决方案有2PC.TCC.可靠消息最终一致性.最大努力通知这几种. 3.1. 什么是2PC 2PC即两阶段提交协议,是将整 ...
随机推荐
- postman 断言
//断言 pm.test("message等于'操作成功'", function () { var jsonData = pm.response.json(); console.l ...
- js-jquery-003-条形码-二维码【QR码】
一.基本使用 插件地址:https://github.com/jeromeetienne/jquery-qrcode 1.首先在页面中加入jquery库文件和qrcode插件. <script ...
- 如何制作一款HTML5 RPG游戏引擎——第四篇,情景对话
今天我们来实现情景对话.这是一个重要的功能,没有它,游戏将变得索然无味.所以我们不得不来完成它. 但是要知道,使用对话可不是一件简单的事,因为它内部的东西很多,比如说人物头像,人物名称,对话内容... ...
- Spark2.0 特征提取、转换、选择之一:数据规范化,String-Index、离散-连续特征相互转换
数据规范化(标准化) 在数据预处理时,这两个术语可以互换使用.(不考虑标准化在统计学中有特定的含义). 下面所有的规范化操作都是针对一个特征向量(dataFrame中的一个colum)来操作的. 首先 ...
- java堆结构和垃圾回收
JVM内存结构和垃圾回收一.JVM垃圾收集算法1.引用计数算法 每个对象有一个引用计数属性,新增一个引用时计数加1,引用释放时计数减1,计数为0时可以回收. 此方法简单,无法解决对象互相循环引用的问题 ...
- PHP用"字符串和变量"组成变量
理论很简单,将字符串和变量组合在一起形成对另一个变量的操作.同样也可以是数组 例: $FFabcd = '组合变量'; $a = 'abcd'; $ay = array('FF','abcd'); ...
- HDU1520:Anniversary party(树形dp第一发)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1520 一个公司去参加宴会,要求去的人不能有直接领导关系,给出每一个人的欢乐值,和L K代表K是L的直接领导 ...
- Linux安装Java开发环境
一.JDK安装 安装JDK的实现步骤(使用root用户登录安装,避免需要对文件授权) (1)下载JDK,JDK的存放目录一般存放于 /opt目录下(Oracle官网下载jdk,需要accept lic ...
- a=a+1背后的内存模型和CPU高速缓存
学过JAVA的人都知道,程序运行过程中的临时数据,都是从外部存储设备调入内存(物理内存)中,再进行读写操作的.而计算机在执行程序时,对程序的每条指令都是在CPU中执行的,而指令的执行,势必涉及到对数据 ...
- 对称加密与非对称加密,以及RSA的原理
一 , 概述 在现代密码学诞生以前,就已经有很多的加密方法了.例如,最古老的斯巴达加密棒,广泛应用于公元前7世纪的古希腊.16世纪意大利数学家卡尔达诺发明的栅格密码,基于单表代换的凯撒密码.猪圈密码, ...