首页 > 其他分享 >分布式三大热门"IP"之分布式事务随笔

分布式三大热门"IP"之分布式事务随笔

时间:2022-12-28 20:55:07浏览次数:47  
标签:事务 IP 预判 提交 一致性 数据 三大 分布式

理论

  • 最近在看一些分布式方面的书籍. 关于分布式事务这个话题自己也是有一些感受和理解.将他写下来.供自己以后回首的时候,方便重拾记忆.

分布式 中有三个理论 ACID/CAP/BASE ,这几个单词真tm难记.只能用我自己无赖方法试着理解.

  • 三个理论从开始到最后是一个由强到柔的过程. 可以在全局上分为两个方向去理解. 一个是 刚. 真刚-数据强一致性! 体现在 追求 操作原子性, 数据一致性,数据持久性,和操作隔离性四个方面.
    所以这个理论下的 最佳实践方案 也肯定践行着 它 刚的 性格.

  • 刚完了之后,就是柔和 . 柔和是建立在 分布式这个环境下的.我目前自己手上7 8 个系统一起搞一条业务线. 感觉想刚也刚不起来.
    此时首先要追求的一点 ,也是必须保证的一点. 分区容错性! 这一点必须要保证,没有这一点. 何来分布式一说.... -> 服务都不能保证可用和互相通讯...
    保证这一点后,根据业务性质,开始做取舍

    1. 方向一 数据可用性.
      分布式 场景下的 事务. 也就是 好几个应用共同干一件事! 无疑是把这个事情的过程拉长了. 以前做事情 啪! 一下搞完了.现在 啪啪啪 好多下,也不一定搞完.
      这个过程中,是否允许用户使用数据,是否允许资源可获取,是否要把握整个过程的资源通透性. 这个是根据自己的业务场景和环境来决定.
    2. 方向二 数据一致性
      分布式事务 .围绕的根本问题就是数据一致性. 那对数据一致性的最求做到什么程度. 可不可以容忍 过程中的不一致性.也是根据自身的业务场景来决定.
  • 数据可用性 和 数据一致性是两个相向而行的射线. 如何做到两者的取舍和平衡. 其实就是 三个理论中的第二个理论和第三个理论. 第二个理论讲的是 追求数据可用性 方案和追求数据一致性方案. 第三个理论是在最求数据可用性的 基础上. 保证数据一致性. 找到一个业务可接受的平衡点.

模型

分布式事务的模型.这个模型读完感觉好奇怪.感觉他和隔壁的 分布式互斥方案好类似. 都是一个协调者搞事情. 也都带出来一个新问题. 协调者挂了怎么搞. 这个模型,目前我的皮毛知识面理解下来.感觉他在,又好像不在... ...听君一席话,如听一席话....
分为4个部分.

  • 协调者(独立部署)

一个事务组成成员的 注册. 事务的 成功与否 .可能还有整个过程的 记录(史官)

  • 应用(我可以理解为事务成员吧)
  • 资源管理者(我可以理解为寄生虫吧)、

很多年前,经常流行一句话是 你的安卓机开root了吗. 这里这个资源管理者. 应该获取了事务成员每个独立个体的 事务的 提交和回滚的权利. 也就是以前的自动事务提交现在改为手动了.谁说了算呢. 这个寄生虫说了算.

  • XA(没理解)

原话 : 资源管理器和事务管理器之间通讯遵循的协议规范,事务管理器通过它来管理和控制资源管理器上的原子事务访问资源.
这个有必要单独一个部分吗.或者是我理解错了. 立个 flag : 等找个时间按照2阶段理论和协调者的概念自己写一个分布式事务中间件.看看会不会遇到这个部分.

方案

两阶段提交

用我自己的话总结起来就是寄生虫式事务处理. 分布式事务中的各个成员之间保留了自己的事务处理.但是执行提交和回滚不归他们管, 统一由我协调者说了算. 我说提交.我的手下就讲成员应用上的事务提交.我说回滚,就把他们的事务全部一个个回滚.

三阶段提交

三阶段提交 用自己的理解起名 : 我预判了你的预判. 比这个三阶段提交好记多了
首先我先预判你成功的样子.再预判你失败的样子. 然后大家一起做事情. 成功了.就是我预判的你成功的预判结果. 失败了. 就用我预判了你失败的预判的结果
实现方式上 要实现三套代码逻辑 1.try 2.comfirm 3.cancel 第一个 就是预判的准备阶段. 第二个阶段就是执行预判的成功结果 .第三个就是执行预判的失败结果.

总结 : 分布式事务我目前的工作中还没有实战接触到,按照脑海中的实现思路来讲. 三阶段提交 的方式 和两阶段比较起来 更像是 把事务的过程拉长了. 在拉长的过程中. 每个步骤都是可见的 .可以读的,当然在最后的最后.它还是保证了数据的最终一致性. 而反观二阶段提交,比较纯粹. 思路更简洁,要嘛全部成功.要嘛全部是失败,而且可以站在 目前代码中普遍的 spring事务管理的肩膀上. 稍微改造一下就可以实现.当然 缺点就是对于过程的可控性和灵活性就差了很多. 两种方案都对代码有着不可避免的入侵. 二阶段入侵要比三阶段少.2022年12月28号 20点48.下班打卡.

标签:事务,IP,预判,提交,一致性,数据,三大,分布式
From: https://www.cnblogs.com/libowenyyds/p/17011263.html

相关文章

  • 第一百一十八篇: JavaScript 原型链式继承
    好家伙,好家伙,本篇为《JS高级程序设计》第八章“对象、类与面向对象编程”学习笔记 1.原型链原型链是JS实现"继承"的方案之一ECMA-262把原型链定义为ECMAScript的主要......
  • 分享20个Javascript中的数组方法,收藏
    什么是数组?与其他编程语言中的数组一样,Array对象允许在一个变量名称下存储多个项的集合,并且具有用于执行常见数组操作的成员。 声明数组我们可以用两种不同的方式......
  • Web前端期末大作业--马尔代夫旅游网页设计(HTML+CSS+JavaScript+)实现
    目录​​前言介绍:​​​​网站首页:​​​​关于马尔代夫:​​​​酒店信息介绍:​​​​最新优惠政策:​​​​旅游须知模块:​​​​关于我们模块:​​​​主要源码结构:​​​......
  • NOIP2021游记
    半退役选手,上去划水。学了一年,总得证明呀。事实证明,我证明了我是个fw。对不起那些给我极大帮助的人。对不起……好了一下是正文。早上5:30起来,上八中考试。没能面......
  • .NET和JavaScript控件丨Infragistics功能简介
    使用InfragisticsUltimateUI/UX工具包简化开发,提供综合的企业级UI控件库和使用Indigo.Design的UX设计-开发协作工具-一个完整的设计到代码系统-集成原型、设计系统......
  • 【知识点】分布式系统相关名词/概念/知识点
    目录​​通信原语[1]​​​​BroadCast​​​​Scatter​​​​Gather​​​​All-Gather​​​​Reduce​​​​Reduce-Scatter​​​​All-Reduce​​​​All-to-All​​......
  • 天翼云斩获2022全球分布式云大会两项大奖
    12月21日,由全球分布式云联盟主办的“2022全球分布式云大会·深圳站”顺利举办。​​天翼云​​凭借在分布式云领域的创新实践,荣获大会颁发的“2022年度中国算力先锋TOP3”,以......
  • 天翼云斩获2022全球分布式云大会两项大奖
    12月21日,由全球分布式云联盟主办的“2022全球分布式云大会·深圳站”顺利举办。​​天翼云​​凭借在分布式云领域的创新实践,荣获大会颁发的“2022年度中国算力先锋TOP3”,以......
  • 如何基于FinClip实现Android系统在自有App中引入小游戏
    ​实现效果:在自有App中实现小程序游戏运行使用技术:FinClip(​​下载/升级最新版IDE​​即可使用)测试机:Android测试Demo:​​飞机大战​​在 Android 项目中引入FinClip......
  • P1036 [NOIP2002 普及组] 选数(DFS + 不降原则)
    P1036[NOIP2002普及组]选数题意​ 在n个数里选k个数,有多少中选法,使得选出来的数的和为素数。不能重复选。思路​ n很小,直接爆搜,但是如果不使用不降原则的话,就......