分布式事务常用策略

分布式事务常见的策略。

1、两阶段型:就是分布式事务两阶段提交,对应技术上的XA、JTA/JTS。
这是分布式环境下事务处理的典型模式。

2、补偿型:
TCC型事务(Try/Confirm/Cancel)可以归为补偿型。
补偿型的例子,在一个长事务(long-running)中,一个由两台服务器一起参与的事务,服务器A发起事务,服务器B参与事务,B的事务需要人工参与,所以处理时间可能很长。如果按照ACID的原则,要保持事务的隔离性、一致性,服务器A中发起的事务中使用到的事务资源将会被锁定,不允许其他应用访问到事务过程中的中间结果,直到整个事务被提交或者回滚。这就造成事务A中的资源被长时间锁定,系统的可用性将不可接受。
WS-BusinessActivity提供了一种基于补偿的long-running的事务处理模型。还是上面的例子,服务器A的事务如果执行顺利,那么事务A就先行提交,如果事务B也执行顺利,则事务B也提交,整个事务就算完成。但是如果事务B执行失败,事务B本身回滚,这时事务A已经被提交,所以需要执行一个补偿操作,将已经提交的事务A执行的操作作反操作,恢复到未执行前事务A的状态。这样的SAGA事务模型,是牺牲了一定的隔离性和一致性的,但是提高了long-running事务的可用性。
例子来源:OASIS的WS-BusinessActivity文档

3、异步确保型
将一些同步阻塞的事务操作变为异步的操作,避免对数据库事务的争用,典型例子是热点账户异步记账、批量记账的处理。

4、最大努力型
PPT中提到的例子交易的消息通知(例如商户交易结果通知重试、补单重试)

如果有技术背景,可以参考另外一个文档  大规模SOA系统中的分布事务处事  ,对支付宝分布式事务处理机制有较为详细描述。

本文转自http://www.zhihu.com/question/31813039

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在分布式数据库原理与应用实验中,我获得了以下收获: 1. 深入理解分布式数据库的概念:通过实验,我对分布式数据库的概念有了更深入的理解。我了解到分布式数据库是将数据存储和处理分布在多个节点上的数据库系统,通过网络进行通信和协作。我学会了如何设计和部署分布式数据库系统,以支持大规模、高并发的应用需求。 2. 掌握分布式数据库的数据分片和复制策略:在实验中,我学习了常见的数据分片和复制策略,如垂直分片、水平分片、主从复制和多主复制等。我了解到如何根据应用需求和数据特点选择合适的策略,并学会了如何配置和管理分片和复制。 3. 熟悉分布式事务处理和并发控制:在实验中,我学习了如何处理分布式环境下的事务和并发控制。我了解到分布式事务的特点和挑战,并学会了使用分布式事务管理器来保证事务的原子性、一致性、隔离性和持久性。 4. 学会使用分布式数据库管理系统:在实验中,我还学习了一些常见的分布式数据库管理系统,如MySQL Cluster、Apache Cassandra等。我了解到这些系统的特点和使用方式,并学会了如何配置和管理这些系统。 5. 实践分布式数据库应用开发:通过实验,我有机会参与到一个完整的分布式数据库应用开发过程中。我学会了如何设计和实现分布式数据库应用,包括数据访问、数据操作和性能优化等方面。 总的来说,分布式数据库原理与应用实验让我对分布式数据库的原理和应用有了更深入的了解,并且掌握了一些常用的技术和工具。这些知识和技能对于我今后在大数据处理和分布式系统开发领域的工作将会非常有用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值