XTS分布式事务框架

简介

XTS(eXtended Transaction Service)是一个分布式事务开发框架,用来保障在大规模分布式环境下事务的最终一致性。

基于TCC设计


XTS实现

1.使用数据库持久化记录事务数据,且使用独立的事务模版,也就是单独事务

2.特别关注红线对应的 sql,这是一句 update 主事务表的 sql,而这句 sql 是在发起方的本地事务中的,这样一来就和发起方的事务绑定了,如果发起方本地事务成功,则这句 update 语句必然成功,如果发起方本地事务失败,则这句 update 语句必然失败,这样我们就可以根据 activity 表的事务记录的状态来决定这笔分布式最终的状态是成功还是失败了

3.在调用参与者前,启动单独事务插入代表这个参与者的分支事务记录,以供后续恢复使用

4.二阶段是通过 spring 提供的事务同步器实现的,如果发起方的本地事务失败,则二阶段自动回滚所有参与者,如果发起方的本地事务成功,则二阶段自动提交所有参与者。二阶段结束后,删除所有事务记录

5.服务器上的框架代码自动调用二阶段失败的话,通过提前配置由兜底服务集群进行事务捞取阶段推进

6.二阶段可配置异步化应对大促等业务场景,保证最终一致性即可

7.一二阶段通过数据库存储的上下文进行数据传递

使用:


参与者

在一阶段方法上打xts参与者注解录入commit和rollback方法,入参打上需要透传参数;

发起方

本地创建activity和action还有悬挂表,

在本地事务模版中调用xts的api开启分布式事务

api中传入事务号信息

注意点:

1.允许空回滚,拒绝空提交。业务代码保障。提交时注意幂等。

2.事务号注意业务隔离

3.悬挂问题:由于网络原因回滚请求可能先于一阶段请求到达,导致一阶段锁定资源无法释放。

解决方法1:30s重放,回滚请求延迟30s再执行,等待一阶段请求,一般30s都没到说明已经丢失。

解决方法2:双插,回滚记录插入回滚表,一阶段请求到来时检测到回滚表已有记录则不执行。通过切面写入和检查。插入时使用事务id+框架生成action唯一id,因为同一事务可能调用多次同一个参与者。

业务问题:

        碰到过的隔离问题。本系统作为参与者一,发起者发起了两次xts事务,第一次xts事务失败,本系统回滚成功,但是参与者二系统回滚失败。发起者发起第二次xts事务,第二次xts事务成功,参与者均正常提交。但是第一次失败的回滚请求,在第二次xts事务成功之后又打到了本系统,由于上游的两次事务为同一个单号重试,本系统以上游单号作为幂等识别,在处理回滚请求时直接根据上游单号查到了第二次提交的数据,所以回滚处理将数据删除了。上下游正常处理,但是本系统数据没了。根本原因是没能区分两次不同的事务。

解决方案:

插入时写入业务隔离关联关系,如果查询为空就插入,否则以查询为准。如果发现事件未处理到终态,说明有相同事件的其他事务正在执行,直接报错,否则返回事件最终结果作为幂等。因有其他事务执行中而被报错返回的事务因为未生成相关数据,所以在回滚时也不做相关数据的删除。


 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
xts pcs openharmony是什么? xts pcs openharmony是指由华为公司推出的一种新型操作系统。它是华为自主研发的一款全新的开源操作系统,旨在为智能物联网设备提供更好的操作系统支持。 xts pcs openharmony有哪些特点? xts pcs openharmony具有以下几个特点。首先,它是一款开源操作系统,这意味着开发者可以自由地访问和修改其代码,使得开发者可以更加灵活地开发自己的应用程序和软件。其次,xts pcs openharmony是为物联网设备而设计的操作系统,因此在资源占用、功耗管理等方面进行了优化,以适应物联网设备的特殊需求。此外,xts pcs openharmony还支持多种硬件架构,包括Arm、x86等,为开发者提供了更广泛的选择。 xts pcs openharmony的应用领域有哪些? xts pcs openharmony可以广泛应用于物联网设备领域。随着智能化水平的不断提升,物联网设备的数量逐渐增多,而操作系统的需求也日益增长。xts pcs openharmony可以为各类智能设备提供稳定、高效、安全的操作系统支持,例如智能家居设备、智能穿戴设备、智能健康设备等。此外,xts pcs openharmony还支持多种智能终端,包括智能手机、平板电脑等。 xts pcs openharmony对行业发展有何意义? xts pcs openharmony的推出对行业发展有着重要意义。首先,它增强了中国自主研发操作系统的实力,减少了对国外操作系统的依赖。其次,xts pcs openharmony的开源特性促进了开发者的创新和合作,进一步推动了物联网产业的发展。此外,xts pcs openharmony还具有高度的开放性和兼容性,有利于不同智能设备和平台之间的互联互通,加速了物联网应用的推广和普及。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值