分布式事务GTS学习记录

随着分布式系统的普及,如何保证数据一致性成为挑战。本文介绍了分布式事务的三种主要解决方案:两阶段提交、TCC和基于消息的最终一致性。重点讨论了阿里GTS(Global Transaction Service),它支持Sql、RPC服务和消息队列的事务操作,采用TCC和消息最终一致性方案的结合。GTS的使用涉及Txc-client、Txc-datasource和Txc-resourcemanager,通过注解@TxcTransaction实现事务管理,确保事务的ACID特性。GTS中的Txc server作为事务协调者,Txc client定义事务边界,Txc Resourcemanager管理子事务。事务状态通过Rpc框架和消息队列传递,而txc_undo_log表用于临时记录子事务的回滚SQL。
摘要由CSDN通过智能技术生成

   我们常用的事务是数据库事务,在单机单应用单数据库场景下才适用的,随着分布式系统越来越普及,数据的一致性问题如何解决,业界目前主要有3种解决方案:

    一、两阶段提交。

      第一阶段,所有事务参与者将执行结果的成功与否反馈给事务协调者,但是不提交。

      第二阶段,事务协调者根据返回的结果,决定是全部提交,还是全部不提交。

      该方案可以保证事务的4个特性ACID。

          A原子性,一个事务内的操作要么全部成功,要么全部失败。

          C一致性,事务提交后,数据必须满足完整性约束。

          I隔离性,事务间的操作是独立的,互不影响。

          D持久性,事务提交后,数据永久生效。

      该方案不足之处,可能子事务B在执行时,要访问还未提交事务的子事务A锁定的资源,导致锁等待,吞吐量会遇到瓶颈,导致性能不高。


   二、TCC

         TCC是两阶段提交的一个变种,在事务的ACID和性能间找到一个平衡点,部分牺牲一致性和隔离性,保证事务最终的一致性。

        T,也就是Try,它会执行完所有的操作,并提交(准确说是临时提交),不会导致锁等待。

        C,也就是Confirm,如果Try操作全部成功ÿ

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值