分布式事务常用策略
来源:互联网 发布:搜本子的软件 编辑:程序博客网 时间:2024/05/16 05:20
分布式事务常见的策略。
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系统中的分布事务处事 ,对支付宝分布式事务处理机制有较为详细描述。
这是分布式环境下事务处理的典型模式。
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 0
- 分布式事务常用策略
- 分布式事务中的算法,策略
- 常用的分布式事务解决方案
- 常用的分布式事务解决方案
- 分布式数据库拆表拆库的常用策略
- 分布式数据库拆表拆库的常用策略
- 分布式数据库拆表拆库的常用策略
- 分布式数据库拆表拆库的常用策略
- 分布式数据库拆表拆库的常用策略
- 分布式数据库拆表拆库的常用策略
- 分布式数据库拆表拆库的常用策略
- 分布式数据库拆表拆库的常用策略
- 分布式数据库拆表拆库的常用策略
- 分布式事务最终一致性常用方案
- 分布式事务最终一致性常用方案
- 分布式事务最终一致性常用方案
- 常用的分布式事务解决方案(1)
- 分布式事务最终一致性常用方案
- CSDN博客的积分规则
- 比较15个数的大小
- 递归7_旗子的移动问题
- phalcon 之 tag组件
- 动态内容缓存技术 CSI,SSI,ESI介绍
- 分布式事务常用策略
- KMCGeigerCounter——iOS动画帧速计算类库
- python 如何将字符串转化为datetime.date【获取指定日期的上月和两个日期之间相差的月数】
- 国内各地图API坐标系统比较与转换
- 博弈论-囚徒困境与重复囚徒困境的启示
- 【BZOJ4236】JOIOJI【数学】【排序】【乱搞】
- Java编程手册-泛型
- 通给给定旋转轴向量v,旋转角度ang,计算出旋转矩阵
- APK极限压缩