砍材农夫砍材农夫
  • 微信记账小程序
  • java
  • redis
  • mysql
  • 场景类
  • 框架类
  • vuepress搭建
  • hexo搭建
  • 云图
  • 常用工具

    • git
    • gradle
    • Zadig
    • it-tools
    • 开源推荐
    • curl
  • 大前端

    • nodejs
    • npm
    • webpack
    • 微信
    • 正则
    • uniapp
  • java

    • java基础
    • jdk体系
    • jvm
    • spring
    • spring_cloud
    • spring_boot
    • 分库分表
    • zookeeper
  • python

    • python基础
    • python高级
    • python框架
  • 算法

    • 算法
  • 网关

    • spring_cloud_gateway
    • openresty
  • 高可用

    • 秒杀
    • 分布式
    • 缓存一致
  • MQ

    • MQ
    • rabbitMQ
    • rocketMQ
    • kafka
  • 其它

    • 设计模式
    • 领域驱动(ddd)
  • 关系型数据库

    • mysql5.0
    • mysql8.0
  • 非关系型数据库

    • redis
    • mongoDB
  • 分布式/其他

    • ShardingSphere
    • 区块链
  • 向量数据库

    • M3E
    • OPEN AI
  • Jmeter
  • fiddler
  • wireshark
  • AI入门
  • AI大模型
  • AI插件
  • AI集成框架
  • 相关算法
  • AI训练师
  • 量化交易
  • gitee
  • github
  • infoq
  • osc
  • 砍材工具
  • 关于
  • 相关运营
  • docker
  • k8s
  • devops
  • nginx
  • 元宇宙
  • 区块链
  • 物联网
  • linux
  • webrtc
  • web3.0
  • gitee
  • github
  • infoq
  • osc
  • 砍材工具
  • 关于
  • 中考
  • 投资
  • 保险
  • 思
  • 微信记账小程序
  • java
  • redis
  • mysql
  • 场景类
  • 框架类
  • vuepress搭建
  • hexo搭建
  • 云图
  • 常用工具

    • git
    • gradle
    • Zadig
    • it-tools
    • 开源推荐
    • curl
  • 大前端

    • nodejs
    • npm
    • webpack
    • 微信
    • 正则
    • uniapp
  • java

    • java基础
    • jdk体系
    • jvm
    • spring
    • spring_cloud
    • spring_boot
    • 分库分表
    • zookeeper
  • python

    • python基础
    • python高级
    • python框架
  • 算法

    • 算法
  • 网关

    • spring_cloud_gateway
    • openresty
  • 高可用

    • 秒杀
    • 分布式
    • 缓存一致
  • MQ

    • MQ
    • rabbitMQ
    • rocketMQ
    • kafka
  • 其它

    • 设计模式
    • 领域驱动(ddd)
  • 关系型数据库

    • mysql5.0
    • mysql8.0
  • 非关系型数据库

    • redis
    • mongoDB
  • 分布式/其他

    • ShardingSphere
    • 区块链
  • 向量数据库

    • M3E
    • OPEN AI
  • Jmeter
  • fiddler
  • wireshark
  • AI入门
  • AI大模型
  • AI插件
  • AI集成框架
  • 相关算法
  • AI训练师
  • 量化交易
  • gitee
  • github
  • infoq
  • osc
  • 砍材工具
  • 关于
  • 相关运营
  • docker
  • k8s
  • devops
  • nginx
  • 元宇宙
  • 区块链
  • 物联网
  • linux
  • webrtc
  • web3.0
  • gitee
  • github
  • infoq
  • osc
  • 砍材工具
  • 关于
  • 中考
  • 投资
  • 保险
  • 思
  • 基础面试题

    • 8.0版本
    • 常见问题
    • DDL-DML-DCL
    • 索引常见问题
    • 索引类型
    • 密集索引和稀疏索引的区别
    • 索引最左匹配原则
  • 事务&锁

    • 锁
    • 事务基础
    • 事务
    • 分布式事务
  • 案例

    • 索引优化
  • 性能优化

    • 慢查询日志
    • 分库分表
  • CAP理论(三者无法同时满足)
  • base理论
  • 解决方案
    • 2PC
      • 2PC 两阶段提交协议
      • JTA + 两阶段提交
      • springboot+JTA+atomikos多数据源分布式事务管理
      • 存在问题
    • 3PC
      • 3PC问题
    • TCC
      • TCC问题
      • Hmily框架
    • saga模式
      • seata框架

CAP理论(三者无法同时满足)

  • C 一致性
分布式多个节点,任意节点读取的数据都是最新状态,返回的数据结果一致
  • A 可用性
任何事务操作,都可以响应结果并且不会响应超时或错误
  • P 分区容错性
分布式不同节点,不可避免出现网络问题,但不影响对外服务正常
  • 常用组合 AP 满足可用性、分区容错性、 对一致性要求较低

base理论

基本可用、软状态、最终一致性的缩写,是对cap理论中一致性和可用性的权衡后的结果

  • BA 基本可用
满足可用性,但可能存在数据不一致
  • S 软状态
系统中可以一段时间内不同步,即系统中的状态不需要实时同步
  • E 最终一致性
所有的节点最终会达到一致的状态,某个时间可能会出现不一致情况

解决方案

2PC

2PC 两阶段提交协议
  • 2是两个阶段,p是准备阶段,c是提交阶段
  • 将整个事务流程分为两个阶段,准备阶段和提交阶段
JTA + 两阶段提交
  • JTA 用户java,用户管理和控制分布式事务流程 Image text
springboot+JTA+atomikos多数据源分布式事务管理
  • XA是定义于数据库的分布式事务处理规范,XA事务支持不同数据库之间实现分布式事务。
  • JTA(Java Transaction API):是Java平台上一个标准API,用于管理和控制分布式事务的执行流程。它是数据库XA事务在Java的一个映射。
核心类:
javax.transaction.UserTransaction:暴露给应用使用,用来启动、提交、回滚事务。
javax.transaction.TransactionManager:提供给事务管理器的接口,用于协调和控制分布式事务的执行过程。
javax.transaction.XAResource:表示一个资源管理器,用于管理和操作资源。
javax.transaction.Xid:用于唯一标识一个分布式事务。
  • Atomikos 是一个开源的事务管理器,用于管理和控制分布式事务的执行过程。Atomikos可以解决,在同一个应用下,连接多个数据库,实现分布式事务
存在问题
  • 单点问题
  • 资源锁问题
  • 性能瓶颈
  • 数据不一致问题

3PC

  • 3PC 三阶段提交协议
  • CanCommit、PreCommit、DoCommit
3PC问题
  • 数据不一致问题

TCC

  • TCC 是 Three-Phase Commit 的缩写,是一种分布式事务处理协议,它由三个阶段组成:Try、Confirm、Cancel。 Image textImage text
TCC问题
  • 拆分两个阶段
  • 允许空回滚
  • 防悬挂控制、幂等控制
Hmily框架

saga模式

  • 一种纯业务补偿的模式,业务在调用的时候正常提交
seata框架
最近更新: 2026/2/3 12:04
Contributors: jysemel, kcnf
Prev
事务