转载自https://bbs.aliyun.com/read/575101.html?spm=a2c4e.11155512.0.0.A0UC1H&accounttraceid=83c3555c-2f16-4555-91a7-27a68d7fd0fe

现代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团队在2018-02-02 12:46重新编辑 ]

小图 | 大图图片

GTS--阿里巴巴分布式事务全新解决方案相关推荐

  1. 分布式事务及解决方案

    分布式事务 1 微服务化带来的分布式事务问题 开发当中真实场景: 首先,设想一个传统的单体应用(Monolithic App),通过 3 个 Module,在同一个数据源上更新数据来完成一项业务. 很 ...

  2. cap理论与分布式事务的解决方案

    现在很火的微服务架构所设计的系统是分布式系统.分布式系统有一个著名的CAP理论,即一个分布式系统要同时满足一致性(Consistency).可用性(Availablility)和分区容错(Partit ...

  3. 分布式事务终极解决方案探讨

    2019独角兽企业重金招聘Python工程师标准>>> 分布式事务终极解决方案探讨 转载于:https://my.oschina.net/dslcode/blog/1606115

  4. 分布式事务的解决方案

    数据库事务 在说分布式事务之前,我们先从数据库事务说起. 数据库事务可能大家都很熟悉,在开发过程中也会经常使用到.但是即使如此,可能对于一些细节问题,很多人仍然不清楚.比如很多人都知道数据库事务的几个 ...

  5. 谈谈分布式的场景及分布式事务的解决方案

    一.解决java集群的session共享的解决方案: 1.客户端cookie加密.(一般用于内网中企业级的系统中,要求用户浏览器端的cookie不能禁用,禁用的话,该方案会失效). 2.集群中,各个应 ...

  6. 分布式事务一致性解决方案

    一.从数据一致性谈起↑ 一致性问题,"万恶之源"是数据冗余和分布并通过网络交互+网络异常是常态. 1.数据一致性的情形 主库.从库和缓存数据一致性,相同数据冗余,关系数据库,为保证 ...

  7. 分布式事务,EventBus 解决方案:CAP【中文文档】

    前言 很多同学想对CAP的机制以及用法等想有一个详细的了解,所以花了将近两周时间写了这份中文的CAP文档,对 CAP 还不知道的同学可以先看一下 .NET Core 事件总线,分布式事务解决方案:CA ...

  8. 这些分布式事务的解决方案,你都知道吗

    转载自   这些分布式事务的解决方案,你都知道吗 分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西,特别是在微服务架构中,几乎可以说是无法避免. 数据库事务 在说分 ...

  9. 深入理解分布式事务,高并发下分布式事务的解决方案

    深入理解分布式事务,高并发下分布式事务的解决方案 参考文章: (1)深入理解分布式事务,高并发下分布式事务的解决方案 (2)https://www.cnblogs.com/betterboyz/p/8 ...

最新文章

  1. C#语法之匿名函数和Lambda表达式
  2. Spartan-6的SelectIO资源
  3. 5月Web服务器份额:Microsoft亚军 份额涨1.05%
  4. set和multiset
  5. zabbix监控(三)
  6. 我要自学网python视频教程_人生苦短,请用Python!学习Python的四大理由
  7. python两个时间内的工作日_如何在Python中找到两个日期之间的星期一或任何其他工作日的数目?...
  8. opencv基于DNN的人脸检测
  9. Codechef之CodeCraft: IIIT Hyderabad
  10. redhad安装git
  11. ONVIF流媒体播放流程
  12. centos不同版本的防火墙命令
  13. ubuntu内核和主线内核_如何在没有任何Distro-upgrade的情况下将内核更新到最新的主线版本?...
  14. POJ - 3624 (01背包问题)(动态规划-滚动数组)
  15. Linux的shell脚本教程(一)
  16. python遍历json_python3如何遍历json数据
  17. 关于Git使用详细教程
  18. Windows 7-11/Server 三蛋多合一精简优化Windows系统
  19. LeedCode 241. Different Ways to Add Parentheses
  20. oracle19自动索引,Oracle 19c 新特性详解:自动索引(Automatic Indexing)的输出报告范例...

热门文章

  1. 外挂学习之路(6)--- 选怪call
  2. Linux 基础I/O :文件描述符,重定向,文件系统,软链接和硬链接,动态库和静态库
  3. 好文推荐 | 分布式锁用Redis好,还是Zookeeper好?
  4. 收藏:DPDK内存基本概念
  5. 【大会】海量高清视频服务端架构设计的变与不变
  6. map/set/multi_map/multi_set/unorder_map/unorder_set总结
  7. 解密小程序云开发数据库
  8. WebRTC 那些常用的缩略词以及部分知识杂谈
  9. Elasticsearch笔记(七):聚合查询
  10. .NET Core和.NET Standard有什么不同