benym的知识笔记 benym的知识笔记
🦮首页
  • Java

    • Java-基础
    • Java-集合
    • Java-多线程与并发
    • Java-JVM
    • Java-IO
  • Python

    • Python-基础
    • Python-机器学习
  • Kafka
  • Redis
  • MySQL
  • 分布式事务
  • Spring

    • SpringIOC
    • SpringAOP
🦌设计模式
  • 剑指Offer
  • LeetCode
  • 排序算法
🐧实践
  • Rpamis

    • Utils
    • Exception
    • Security
  • 归档
  • 标签
  • 目录
🦉里程碑
🐷关于
GitHub (opens new window)

benym

惟其艰难,才更显勇毅🍂惟其笃行,才弥足珍贵
🦮首页
  • Java

    • Java-基础
    • Java-集合
    • Java-多线程与并发
    • Java-JVM
    • Java-IO
  • Python

    • Python-基础
    • Python-机器学习
  • Kafka
  • Redis
  • MySQL
  • 分布式事务
  • Spring

    • SpringIOC
    • SpringAOP
🦌设计模式
  • 剑指Offer
  • LeetCode
  • 排序算法
🐧实践
  • Rpamis

    • Utils
    • Exception
    • Security
  • 归档
  • 标签
  • 目录
🦉里程碑
🐷关于
GitHub (opens new window)
  • Kafka

    • 概览
  • Redis

    • Redis实现共享Session
    • 自定义RedisTemplate
    • Redis哨兵
    • Redis持久化RDB
    • Redis持久化AOF
    • Redis分片集群
  • MySQL

    • MySQL索引原理及应用场景
  • 分布式事务

    • 事务的特性、CAP定理、BASE理论
      • 分布式事务XA、AT、TCC、SAGA
      • 分布式事务AT模式的脏写问题
      • 分布式事务TCC模式的空回滚和业务悬挂问题
    • 分布式与中间件
    • 分布式事务
    benym
    2022-02-20
    目录

    事务的特性、CAP定理、BASE理论

    # 事务的四大特性(ACID)

    • 原子性(Atomicity):事务中的所有操作,要么全部成功,要么全部失败
    • 一致性(Consistency):事务前后数据的完整性必须保持一致
    • 隔离性(Isolation):事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。
    • 持久性(Durability):持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响

    # CAP定理

    分布式系统有三个指标

    • Consistency(一致性):用户访问分布式系统中的任意节点,得到的数据必须一致
    • Availability(可用性):用户访问集群中的任意健康节点,必须能得到响应,而不是超时或拒绝
    • Partition tolerance(分区容错性):因为网络故障或其它原因导致分布式系统中的部分节点与其它节点失去连接,形成独立分区。在集群出现分区时,整个系统也要持续对外提供服务 分布式系统无法同时满足这三个指标。分布式系统节点通过网络连接,一定会出现分区问题(P),当分区出现时,系统的一致性(C)和可用性(A)就无法同时满足,这个结论就叫做 CAP 定理。
    CAP

    # BASE理论

    BASE理论是对CAP的一种解决思路,包含三个思想:

    • Basically Available(基本可用):分布式系统在出现故障时,允许损失部分可用性,即保证核心可用。
    • Soft State(软状态):在一定时间内,允许出现中间状态,比如临时的不一致状态。
    • Eventually Consistent(最终一致性):虽然无法保证强一致性,但是在软状态结束后,最终达到数据一致。

    而分布式事务最大的问题是各个子事务的一致性问题,因此可以借鉴CAP定理和BASE理论: AP模式:各子事务分别执行和提交,允许出现结果不一致,然后采用弥补措施恢复数据即可,实现最终一致。 CP模式:各个子事务执行后互相等待,同时提交,同时回滚,达成强一致。但事务等待过程中,处于弱可用状态。

    编辑 (opens new window)
    #Java#事务
    上次更新: 2023/04/06, 22:48:42
    MySQL索引原理及应用场景
    分布式事务XA、AT、TCC、SAGA

    ← MySQL索引原理及应用场景 分布式事务XA、AT、TCC、SAGA→

    最近更新
    01
    SpringCache基本配置类
    05-16
    02
    DSTransactional与Transactional事务混用死锁场景分析
    03-04
    03
    Rpamis-security-原理解析
    12-13
    更多文章>
    Theme by Vdoing | Copyright © 2018-2024 benym | MIT License
     |   |   | 
    渝ICP备18012574号 | 渝公网安备50010902502537号
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式