破解世界性技术难题! GTS让分布式事务简单高效

本文涉及的产品
RDS AI 助手,专业版
PolarDB Agent Express,2核4GB
PolarSearch,搜索节点 4核8GB
简介:

近日,2017云栖大会·深圳峰会如期举行,多项阿里云新产品对外发布。在企业级互联网架构分会场,来自阿里中间件(Aliware)的技术专家及合作伙伴,为现场参会嘉宾带来最新的传统IT架构到企业级互联网架构跨越式升级、实现互联网转型的产品及解决方案。其中高级技术专家姜宇在分享中带来的Aliware新产品—全局事务服务(Global Transaction Service ,简称GTS),在分布式事务处理上带来的高性能和技术创新令到场参会的各路技术专家眼前一亮。

image
Aliware新成员—全局事务服务GTS技术分享现场

分布式事务背景

OLTP领域中很多业务场景都会面临事务一致性的需求,传统业务系统常以单体应用形式存在,只需借助特有数据访问技术和框架,结合关系型数据库自带的事务管理机制来实现事务一致性的要求。而目前大型互联网应用和平台往往是由一系列分布式系统构建而成,平台和技术架构也是流派纷呈。

尤其是微服务架构盛行的今天,一个看似简单的功能,内部可能需要调用多个“服务”并操作多个数据库或分片来实现,单一技术手段和解决方案已无法满足这些复杂应用场景。因此,分布式系统架构中分布式事务是一个绕不过去的挑战。什么是分布式事务?简单的说,就是一次大操作由不同小操作组成,这些小操作分布在不同服务器上,分布式事务需要保证这些小操作要么全部成功,要么全部失败。

本质上来说,分布式事务就是为了保证不同数据库或消息系统的数据一致性。

分布式事务三大难题:一致性、高性能和易用性

分布式系统的事务一致性本身是一个技术难题,没有一种简单完美的方案能够应对所有场景,很难兼顾事务一致性,高性能与易用性。三者缺一,则适用场景大大受限,实用价值不高。

首先是一致性:要求在各种异常情况下保证数据是强一致的。目前最常见的一致性解决方案是最终一致性方案,通常是结合消息中间件实现,在互联网企业中广泛使用。最终一致性实现方案比较复杂,开发、运维成本高,并且与强一致相比,业务上是受很多限制的。

其次是高性能:目前基于XA协议的两阶段提交是最常见的分布式事务解决方案,但XA类产品的典型不足是性能低下,这对于互联网大并发需求下的多数企业是无法接受的。国外具有几十年历史和技术沉淀的基于XA模型的商用分布式事务产品,在相同软硬件条件下,开启分布式事务后吞吐经常有数量级的下降。

第三是易用性:为了满足一致性和高性能要求,出现了一些特定场景下的分布式事务方案,但通常会限制用户用法,对业务侵入性强,无法做到简单易用,带来更多开发成本。

世界级应用场景,催生世界级分布式事务解决方案

早期的阿里巴巴集团随着业务高速发展,内部不断涌现各种典型的分布式事务需求,比如阿里内部广泛使用的TDDL分库分表所带来的分库间数据不一致问题,HSF服务化后所带来的服务链路上数据不一致问题等。在这个过程中,各业务技术团队利用现有中间件技术手段实现分布式事务处理,但这些手段都较为复杂,工作量大,对应用侵入严重,有些适用场景还有限制。

2014年5月开始,阿里中间件(Aliware)内部命名为TXC的分布式事务中间件开始研发,同年10月1.0版本发布,分布式事务功能已经具备,但性能还有局限,只适合于吞吐量较小的场景;2015年12月,TXC 2.0版本发布,相比1.0版本性能提升10倍以上,在阿里内部多条业务线得到部署。

通过部署TXC,应用只需极少的代码改造和配置,即可享受分布式事务带来的便利。TXC作为阿里内部为解决分布式数据强一致性问题而研发的分布式事务中间件,彻底解决了分布式事务数据一致性的问题,简单易用,先后在淘宝,菜鸟,淘票票和村淘等多个业务的核心系统上得到部署和验证。

image


顺应云时代潮流,GTS应运而生

从2016年年中开始,在阿里内部一直接受锤炼的分布式事务中间件TXC在2.0版本后,随着阿里中间件上云热潮,开始通过专有云输出,并得到了市场极大认可,适用场景得到进一步拓展,全面涵盖电商、物流、金融、零售、政企、游戏、文娱等领域。2017年2月,TXC 2.0通过阿里云对外公测,外部改名为全局事务服务(Global Transaction Service,简称GTS)。

image


在整体架构方面,GTS由三个组件组成:客户端(GTS-Client),资源管理器(RM),事务协调器(GTS-Server)。客户端与事务协调器间,资源管理器与事务协调器间都是通过GTS分布式事务协议进行通信。客户端负责界定事务边界,开启/提交/回滚全局事务,资源管理器负责管理资源,支持的资源包括:DRDS,Oracle,MySQL,RDS,PostgreSQL,H2,MQ,后续计划根据实际业务需求支持更多类型资源。事务协调器,也就是GTS服务器,是分布式事务处理的大脑,负责协调整个事务过程。GTS事务通过RPC框架和消息中间件进行事务传递,把整个业务调用链路或者消息链路串成一个分布式事务,极大简化应用开发。

在高可用方面,GTS支持同城容灾与两地三中心容灾,可保证各种异常情况下的数据一致。在易用性方面,GTS对业务无侵入,真正做到业务与事务分离,开发者可以集中精力于业务本身。在技术创新方面,GTS也走在了行业前沿。项目负责人阿里高级技术专家姜宇(花名于皋)拥有13项分布式事务的核心技术专利,研发团队的技术专家张松树也有3篇专利。通过大量的专利技术,精妙的算法,与精巧的分布式事务私有协议,GTS取得了超强的性能。

另外,在部分严苛的行业应用场景,比如金融用户的资管项目分布式事务场景下,GTS也经历了严格的测试,按照用户要求顺利完成功能性、稳定性和性能测试。下图是一个典型性能测试场景数据,从实测数据可以看出,开启GTS(TXC)分布式事务后性能下降不明显。目前GTS已经在资金业务上有实际应用,线上大量真实数据验证了GTS的高效可靠。

image


性能优异,业务场景广泛

作为新一代企业级分布式事务服务产品,全局事务服务GTS兼顾了事务一致性,高性能与易用性。在满足事务ACID的前提下,普通配置的单服务器就可以达到15000TPS以上的超强性能(两个小时内完成1亿多笔业务),3台8核16G内存虚机组成的服务器集群可以支撑1万TPS以上的分布式事务,与同类产品相比,性能优势明显。另外简单易用对业务无侵入,为广大企业大幅降低开发成本,业务场景非常广泛:

1、跨多分库的分布式数据库事务场景:关系型数据库普遍支持事务,能够满足事务内的SQL要么全部成功、要么全部失败。但客户从单机数据库往分布式数据库迁移的情况下,原有的一个事务往往会被拆分为多个分库上的事务。由于网络的不可靠性,容易出现部分分库上成功,部分分库上失败的情况。GTS结合DRDS可彻底解决了这一问题。

2、跨多数据库的事务场景:复杂的业务系统经常会使用多个数据库,甚至多种类型的数据库,比如企业中Oracle,MySQL和其他关系型数据库并存的情况时有发生。业务同时操作多个数据库的情况下,一旦发生先提交的事务成功、后提交的事务失败,就很难解决。GTS支持各种常见关系型数据库,并提供多数据库间的事务保证。

3、跨数据库系统、消息系统的事务场景:消息系统被广泛地用于系统间解耦,一般先执行一段业务逻辑,执行成功会向消息系统发送一条消息,用于通知或触发下游业务。这个场景下,如果业务逻辑执行成功、消息发送失败,则业务不完整;如果先发送消息,但执行业务逻辑失败,同样存在问题。GTS提供了针对消息系统以及常见关系型数据库的操作入口,保证数据库操作和发送消息要么同时成功、要么同时失败。

4、跨服务的事务场景:随着业务复杂度提升,大多企业会对业务进行服务化改造。可能存在服务一操作MySQL和DRDS,服务二操作Oracle,要求两个服务操作要么同时成功、要么同时失败,否则会造成业务数据的不一致。GTS可以很方便地进行跨多个服务的分布式事务。

依托阿里中间件(Aliware),打造世界一流企业级互联网架构平台

据GTS项目负责人姜宇介绍,“GTS作为一款高性能、高可靠、接入简单的分布式事务中间件产品,可与 DRDS、RDS、Oracle、MySQL、PostgreSQL、H2等数据源,EDAS、Dubbo及多种私有RPC框架,MQ消息队列等中间件产品配合使用,可轻松实现分布式数据库事务、多库事务、消息事务、服务链路级事务及各种组合。策略丰富,易用性和性能兼顾,将真正完善阿里云中间件产品线。”

GTS(TXC)的研发依托于阿里中间件(Aliware)团队,中间件技术部是阿里巴巴集团生态系统的技术基石,为集团各大业务群提供可靠、高效、易扩展的技术基础服务;并在此基础上打造世界一流的中间件产品、高可用架构基础设施和企业级互联网架构平台,为全球企业和客户提供服务。

原文链接

相关文章
|
8月前
|
负载均衡 测试技术 调度
大模型分布式推理:张量并行与流水线并行技术
本文深入探讨大语言模型分布式推理的核心技术——张量并行与流水线并行。通过分析单GPU内存限制下的模型部署挑战,详细解析张量并行的矩阵分片策略、流水线并行的阶段划分机制,以及二者的混合并行架构。文章包含完整的分布式推理框架实现、通信优化策略和性能调优指南,为千亿参数大模型的分布式部署提供全面解决方案。
2525 4
|
8月前
|
机器学习/深度学习 监控 PyTorch
68_分布式训练技术:DDP与Horovod
随着大型语言模型(LLM)规模的不断扩大,从早期的BERT(数亿参数)到如今的GPT-4(万亿级参数),单卡训练已经成为不可能完成的任务。分布式训练技术应运而生,成为大模型开发的核心基础设施。2025年,分布式训练技术已经发展到相当成熟的阶段,各种优化策略和框架不断涌现,为大模型训练提供了强大的支持。
1070 0
|
9月前
|
JSON 监控 Java
Elasticsearch 分布式搜索与分析引擎技术详解与实践指南
本文档全面介绍 Elasticsearch 分布式搜索与分析引擎的核心概念、架构设计和实践应用。作为基于 Lucene 的分布式搜索引擎,Elasticsearch 提供了近实时的搜索能力、强大的数据分析功能和可扩展的分布式架构。本文将深入探讨其索引机制、查询 DSL、集群管理、性能优化以及与各种应用场景的集成,帮助开发者构建高性能的搜索和分析系统。
607 0
|
9月前
|
消息中间件 监控 Java
Apache Kafka 分布式流处理平台技术详解与实践指南
本文档全面介绍 Apache Kafka 分布式流处理平台的核心概念、架构设计和实践应用。作为高吞吐量、低延迟的分布式消息系统,Kafka 已成为现代数据管道和流处理应用的事实标准。本文将深入探讨其生产者-消费者模型、主题分区机制、副本复制、流处理API等核心机制,帮助开发者构建可靠、可扩展的实时数据流处理系统。
840 4
|
安全 JavaScript 前端开发
HarmonyOS NEXT~HarmonyOS 语言仓颉:下一代分布式开发语言的技术解析与应用实践
HarmonyOS语言仓颉是华为专为HarmonyOS生态系统设计的新型编程语言,旨在解决分布式环境下的开发挑战。它以“编码创造”为理念,具备分布式原生、高性能与高效率、安全可靠三大核心特性。仓颉语言通过内置分布式能力简化跨设备开发,提供统一的编程模型和开发体验。文章从语言基础、关键特性、开发实践及未来展望四个方面剖析其技术优势,助力开发者掌握这一新兴工具,构建全场景分布式应用。
1137 35
|
Cloud Native 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
|
Cloud Native 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
阿里云PolarDB云原生数据库在TPC-C基准测试中以20.55亿tpmC的成绩刷新世界纪录,展现卓越性能与性价比。其轻量版满足国产化需求,兼具高性能与低成本,适用于多种场景,推动数据库技术革新与发展。
|
机器学习/深度学习 存储
DeepSeek进阶开发与应用4:DeepSeek中的分布式训练技术
随着深度学习模型和数据集规模的扩大,单机训练已无法满足需求,分布式训练技术应运而生。DeepSeek框架支持数据并行和模型并行两种模式,通过将计算任务分配到多个节点上并行执行,显著提高训练效率。本文介绍DeepSeek中的分布式训练技术,包括配置与启动方法,帮助用户轻松实现大规模模型训练。数据并行通过`MirroredStrategy`同步梯度,适用于大多数模型;模型并行则通过`ParameterServerStrategy`异步处理大模型。DeepSeek简化了分布式环境配置,支持单机多卡和多机多卡等场景。
|
存储 缓存 负载均衡
从零到一:分布式缓存技术初探
分布式缓存通过将数据存储在多个节点上,利用负载均衡算法提高访问速度、降低数据库负载并增强系统可用性。常见产品有Redis、Memcached等。其优势包括性能扩展、高可用性、负载均衡和容错性,适用于页面缓存、应用对象缓存、状态缓存、并行处理、事件处理及极限事务处理等多种场景。
878 1
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
683 2