阅读686 返回首页    go 微信


TXC 简介__TXC for EDAS_二方服务_企业级分布式应用服务 EDAS-阿里云

分布式事务(Transaction Controller,简称 TXC)是一款高性能、高可靠、接入简单的分布式事务中间件,用于解决分布式环境下的事务一致性问题。该产品支持 DRDS、RDS、Oracle、MySQL、PostgreSQL、H2 等多种数据源,并可以配合使用 EDAS、Dubbo 及多种私有 RPC 框架,同时还兼容 MQ 消息队列等中间件产品,能够轻松实现分布式数据库事务、多库事务、消息事务、服务链路级事务及其各种组合,策略丰富,易用性和性能兼顾。

TXC 是阿里云正式商用的产品,目前在阿里云多个地域(Region)提供了高可用分布式事务云服务,产品稳定性及可用性完全按照阿里巴巴内部标准来实施,产品使用时,应用只需要极少的代码改造和配置,即可享受分布式事务带来的便利。

功能介绍

TXC 能够轻松实现分布式数据库事务、多库事务、消息事务、服务链路级事务及其各种组合,支持 DRDS、RDS、Oracle、MySQL、PostgreSQL、H2 等多种数据源,同时可以配合使用 EDAS、Dubbo 及多种私有RPC框架,此外还兼容 MQ 消息队列等中间件产品。使用 TXC 主要能够解决以下三方面的问题:

数据库扩容产生的分布式事务

业务初始阶段往往规模比较小,大多情况下,单库就可以满足需求,经过一段时间后,业务规模也会随之变得大而复杂,会出现分库的情况,这时原有的单机事务往往会变成分布式事务。

跨资源操作

在某些业务场景中,需要进行多个 DB 操作的同时,还会调用消息系统,DB 操作成功、消息发送失败或者反过来都会造成业务的不完整。

跨服务的分布式事务

业务完成服务化后,资源与客户端调用解耦,同时又要保证多个服务调用间资源的变化保持强一致,否则会造成业务数据的不完整。

产品优势

简单易用

TXC 嵌入代码和业务代码松耦合,仅需简单配置就能够轻松实现分布式事务,并对已有业务代码不造成影响。

节约成本

节省运维成本,避免了分布式场景下产生的数据异常;节省开发成本,像使用单机事务一样使用分布式事务。

高性能

  • 普通单台服务器提供1.5万 TPS 以上分布式事务处理能力;
  • 每一个事务分支的处理延迟在2ms左右;
  • 热点数据可以高效处理,无惧数据冲突。

接入简单

  • 支持多种数据源: DRDS、RDS、Oracle、MySQL、PostgreSQL、H2等;
  • 支持 RPC 框架: EDAS、Dubbo 及多种私有 RPC 框架;
  • 支持消息队列: MQ;
  • 高可靠:中间状态多份落盘存储,经过严格断电测试,严格保证数据一致性。

应用场景

TXC 可应用在涉及数据库操作的多个领域,包括企业解决方案、金融支付、电信、电子商务、快递物流、广告营销、社交、即时通信、手游、视频、物联网、车联网等。

TXC 可以应用但不局限于以下业务场景:

EDAS 事务解决方案

与 EDAS 打通,提供夸库、跨服务的分布式事务支持,实现业务链路级别的分布式事务。开发简单,只需要在客户端声明一个注解,界定事务边界。

DRDS 事务解决方案

提供标准的 SQL 语法,以极低的开发成本,为分布式数据库 DRDS 提供分布式事务能力,是企业从单机数据库迁移到分布式数据库的利器。

MQ 事务解决方案

与 MQ 打通,提供事务消息处理能力,业务链路完成时发送消息,任一阶段异常时回滚消息。开发简单,在客户端声明一个注解,界定事务边界,调用 MQ 的 API 发送消息。

混合事务解决方案

以极简单的用户接口,实现跨服务(EDAS、Dubbo)、跨数据库(DRDS、RDS、MySQL)、跨消息(MQ)的通用分布式事务管理。

名词解释

本文主要对 TXC 涉及的专有名词及术语进行定义和解析,方便您更好地理解相关概念并使用 TXC。

TXC

分布式事务(Transaction Controller,简称 TXC)是一款高性能、高可靠、接入简单的分布式事务中间件,用于解决分布式环境下的事务一致性问题。本产品是企业级互联网架构的核心产品,可提供分布式数据库事务、多库事务、消息事务、服务链路级事务等一系列分布式事务云服务。

Transaction

事务,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。

XID

XID,即 TXC 分布式事务的全局事务 ID,TXC 服务会为每一个分布式事务生成一个全局唯一的分布式事务 ID。由于其全局唯一性,我们可以通过 TXC 日志中的 XID 帮助排查问题。一个事务的 XID 可以通过下面代码获得:TxcContext.getCurrentXid();

BranchId

即 TXC 分布式事务的分支事务 ID,它是事务分支的唯一标识。XID 和 BranchId 是一对多的包含关系,即一个全局事务可能包含多个事务分支。通过在 TXC 日志中跟踪某个 BranchId,可以帮助排查问题,观察事务分支提交和回滚的原因。

GlobalCommit

全局事务提交,TXC 中用于表示一个全局事务提交了。

GlobalRollback

全局事务回滚,TXC 中用于表示一个全局事务回滚了。

BranchCommit

分支事务提交,TXC 中用于表示一个全局事务的某个分支提交了。

BranchRollback

分支事务回滚,TXC 中用于表示一个全局事务的某个分支回滚了。

最后更新:2016-12-07 10:28:54

  上一篇:go 开发测试集群使用说明__SchedulerX for EDAS_二方服务_企业级分布式应用服务 EDAS-阿里云
  下一篇:go TXC 控制台快速入门__TXC for EDAS_二方服务_企业级分布式应用服务 EDAS-阿里云