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即两阶段提交协议,是将整 ...
随机推荐
- Django中间件如何处理请求
Django中间件 在http请求 到达视图函数之前 和视图函数return之后,django会根据自己的规则在合适的时机执行中间件中相应的方法. Django1.9版本以后中间件的执行流程 1. ...
- 常用WebSite Address
百度 魅族深度学习应用大赛 byr论坛 帖子 https://bbs.byr.cn/#!article/ML_DM/24852?p=1 百度 魅族深度学习应用大赛 官网 http://meizu.ba ...
- Spark机器学习系列之13: 支持向量机SVM
Spark 优缺点分析 以下翻译自Scikit. The advantages of support vector machines are: (1)Effective in high dimensi ...
- Spring的AOP实现
内容详见切面编程系列 https://www.cnblogs.com/jiyukai/category/1265045.html.
- C++基础之头文件和源文件的关系
今天找了个解析xml的开源C++项目tinyxml,按照网上的说法去编译,但是一直编译不通过,"无法打开头文件tinyxml.h",但是明明我在工程底下有了这个文件,对于我这种初学 ...
- Linux命令 lsof使用
lsof(list open files)是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件. lsof +d ...
- kubenetes 应用更新
一.Deployment类型: 1.更新: 1).命令方式更新镜像: kubectl set image deployment nginx-deployment nginx=nginx:1.9.1 k ...
- Maven打包部署
Maven打Jar包 问题一 Eclipse突然SB告诉我类不存在还让我导包进来O__O "…,但是我明明有这个类.这是不要慌,通过在网上搜索得知:由于eclipse的编译是基于时间戳的判断 ...
- SHUOJ Arithmetic Sequence (FFT)
链接:http://acmoj.shu.edu.cn/problem/533/ 题意:求一个序列中,有多少三元组(其中元素不重复)在任意的排列下能构成等差数列. 分析:等差数列:\(A_j-A_i=A ...
- Python中常用技巧整理
Python中os.path的妙用 http://xpleaf.blog.51cto.com/9315560/1736956