zoukankan      html  css  js  c++  java
  • 分布式协调与同步之分布式事务

    分布式事务的概念

    事务

        包含一系列操作的,一个有边界的工作序列,有明确的开始和结束标志,且要么被完全执行,要么完全失败

    分布式事务

        分布式系统中运行的事务,有多个本地事务组合而成

    基本特征

        原子性,一致性,隔离性和持久性

    刚性事务和柔性事务

        刚性事务:遵循ACID原则,具有强一致性

        柔性事务:根据不同的业务场景使用不同的方法实现最终一致性,可以容忍一定时间内的数据不一致

    BASE理论

        基本可用:分布式系统出现故障时,允许损失一部分功能的可用性

        柔性状态:允许系统存在中间状态且不会影响系统整体可用性

        最终一致性:最终状态下数据都是一致的

    分布式事务的实现方法

    基于XA协议的二阶段提交协议方法

    角色:协调者(事务管理器)和参与者(本地资源管理器)

    阶段:投票阶段和提交阶段

    特点:强一致性,同步执行,算法简单易实现

    问题:同步阻塞,单点故障以及数据不一致问题,性能低,系统吞吐量低

    三阶段提交协议方法

    角色:协调者(事务管理器)和参与者(本地资源管理器)

    阶段:增加了预提交阶段,引入超时机制和准备机制

    特点:强一致性,同步执行,无同步故障问题,无单点故障问题

    问题:数据不一致问题,性能较低,系统吞吐量不高

    基于消息的最终一致性方法

    核心思想:将事务通过消息或者日志的方式异步执行,消息可以持久化到本地文件,数据库或者消息队列中,再通过业务规则进行失败重试

    特点:最终一致性,异步执行,无同步阻塞和单点故障问题,性能高,吞吐量高

    缺点:算法复杂度高

  • 相关阅读:
    Java实现 蓝桥杯 历届试题 连号区间数
    Java实现 蓝桥杯 历届试题 连号区间数
    Java实现 蓝桥杯 历届试题 连号区间数
    Java实现 蓝桥杯 历届试题 连号区间数
    Java实现 蓝桥杯 历届试题 连号区间数
    Java实现 蓝桥杯 历届试题 大臣的旅费
    Java实现 蓝桥杯 历届试题 大臣的旅费
    Java实现 蓝桥杯 历届试题 大臣的旅费
    Java实现 蓝桥杯 历届试题 大臣的旅费
    Navicat查询哪些表有指定字段名
  • 原文地址:https://www.cnblogs.com/battlescars/p/distributed_transaction.html
Copyright © 2011-2022 走看看