码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • springcloud3 分布式事务实现逻辑思想2


    一 分布式事务逻辑

    1.1 CAP理论

    CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性)这3个基本需求,最多只能同时满足其中的2个。

    总结:

    1.2  CAP的应用场景

    假如现在有这样的场景:

    用户访问了N1,修改了D1的数据。用户再次访问,请求落在了N2。此时D1和D2的数据不一致。

    接下来:

    保证一致性:此时D1和D2数据不一致,要保证一致性就不能返回不一致的数据,可用性无法保证。

    保证可用性:立即响应,可用性得到了保证,但是此时响应的数据和D1不一致,一致性无法保证。

    所以,可以看出,分区容错的前提下,一致性和可用性是矛盾的。

    1.3 BASE理论

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

    • Basically Available (基本可用):分布式系统在出现故障时,允许损失部分可用性,即保证核心可用。

    • Soft State(软状态):在一定时间内,允许出现中间状态,比如临时的不一致状态。

    • Eventually Consistent(最终一致性):虽然无法保证强一致性,但是在软状态结束后,最终达到数据一致。

    1.4 分布式事务满足特性

    1.首先满足事务特性:ACID

     2.而在分布式环境下,会涉及到多个数据库

    分布式事务处理的关键是:

    1.需要记录事务在任何节点所做的所有动作;

    2.事务进行的所有操作要么全部提交,要么全部回滚。

    目的是为了保证分布式系统中的数据一致性。

    1.5 解决分布式事务的思路

    分布式事务最大的问题是各个子事务的一致性问题,因此可以借鉴CAP定理和BASE理论,有两种解决思路:

    • AP模式:各子事务分别执行和提交,允许出现结果不一致,然后采用弥补措施恢复数据即可,实现最终一致。

    • CP模式:各个子事务执行后互相等待,同时提交,同时回滚,达成强一致。但事务等待过程中,处于弱可用状态。

    但不管是哪一种模式,都需要在子系统事务之间互相通讯,协调事务状态,也就是需要一个事务协调者(TC):这里的子系统事务,称为分支事务;有关联的各个分支事务在一起称为全局事务。

  • 相关阅读:
    vscode-server
    王爽《汇编语言》检测点11.2详细解析
    面渣逆袭:微服务三十三问,两万字图文详解,速收藏
    ElasticSearch 04 -- 进阶
    Springboot+学生作业管理系统 毕业设计-附源码251208
    Seurat | 强烈建议收藏的单细胞分析标准流程(细胞周期的影响去除)(三)
    【手搓模型】亲手实现 Vision Transformer
    Oracle Primavera Unifier文档管理器(Document Manager)
    LeetCode //C - 200. Number of Islands
    【物联网】Arduino+ESP8266物联网开发(二):控制发光二极管 按钮开关控制开关灯
  • 原文地址:https://blog.csdn.net/u011066470/article/details/132992981
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号