Java分布式事务(十)
创始人
2025-06-01 02:11:42

文章目录

    • 🔥分布式架构的理论知识_BASE理论
    • 🔥分布式事务解决方案_最终一致性分布式事务
    • 🔥最终一致性分布式事务解决方案_TCC是什么
    • 🔥Hmily实现TCC分布式事务实战_认识Hmily-TCC

🔥分布式架构的理论知识_BASE理论

在这里插入图片描述

为什么会出现BASE理论
CAP 理论表明,对于一个分布式系统而言,它是无法同时满足Consistency(强一致性)、Availability(可用性) 和 Partition tolerance(分区容忍性) 这三个条件的,最多只能满足其中两个。
在这里插入图片描述

理由:
⭐为了用户体验,先选可用性。
⭐放弃了一致性的系统又失去了存在的意义。

简介
BASE 理论起源于 2008 年, 由 eBay 的架构师 Dan Pritchett 在ACM 上发表。
在这里插入图片描述

什么是BASE理论
BASE 是 Basically Available(基本可用) 、Soft-state(软状态)和 Eventually Consistent(最终一致性) 三个短语的缩写。

核心思想:
既是无法做到强一致性(Strong consistency),但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性(Eventual consistency)。

BASE 理论三要素

基本可用(Basically Available)
基本可用是指分布式系统在出现故障的时候,允许损失部分可用性,即保证核心可用。允许损失部分可用性。但是,这绝不等价于系统不可用。

软状态(Soft State)
软状态是指允许系统存在中间状态,而该中间状态不会影响系统整体可用性。即允许系统在多个不同节点的数据副本存在数据延时。
在这里插入图片描述

注意:
用户在商城下单时,因网络超时等因素,订单处于“支付中”的状态,待数据最终一致后状态将变更为“关闭”或“成功”状态。

最终一致性(Eventual Consistency)
最终一致性是指系统中的所有数据副本经过一定时间后,最终能够达到一致的状态。弱一致性和强一致性相反,最终一致性是弱一致性的一种特殊情况。

分布式一致性的 3 种级别:
⭐强一致性 :系统写入了什么,读出来的就是什么。
⭐弱一致性 :不一定可以读取到最新写入的值,也不保证多少时间之后读取到的数据是最新的,只是会尽量保证某个时刻达到数据一致的状态。
⭐最终一致性 :弱一致性的升级版,系统会保证在一定时间内达到数据一致的状态。

业界比较推崇是最终一致性级别,但是某些对数据一致要求十分严格的场景比如银行转账还是要保证强一致性。
ACID 是数据库事务完整性的理论,CAP 是分布式系统设计理论,BASE 是 CAP 理论中 AP 方案的延伸。符合Base理论的事务可以称为柔性事务。

🔥分布式事务解决方案_最终一致性分布式事务

在这里插入图片描述

什么是最终一致性事务
强一致性分布式事务解决方案要求参与事务的各个节点的数据时刻保持一致,查询任意节点的数据都能得到最新的数据结果。这就导致在分布式场景,尤其是高并发场景下,系统的性能受到影响。而最终一致性分布式事务解决方案并不要求参与事务的各节点数据时刻保持一致,允许其存在中间状态,只要一段时间后,能够达到数据的最终一致状态即可。

典型方案
为了解决分布式、高并发场景下系统的性能问题,业界基于Base理论提出了最终一致性分布式事务解决方案。

⭐TCC解决方案。
⭐可靠消息最终一致性解决方案。
⭐最大努力通知型解决方案。

适用场景
在这里插入图片描述

注意:
每个服务都存在中间状态,服务与服务之间不必保持强一致性,允许在某个时刻查询出来的数据存在短暂的不一致性,经过一段时间后,各个服务之间的数据能够达到最终一致性。这样,不仅各个服务的数据达到了最终一致性,还极大地提高了系统的整体性能并降低了分布式事务执行过程中出错的概率。

优缺点
最终一致性分布式事务解决方案的优点:
⭐性能比较高,这是因为最终一致性分布式事务解决方案不要求数据时刻保持一致,不会因长时间持有事务占用的资源而消耗过多的性能。
⭐具备可用性。
⭐适合高并发场景。
最终一致性分布式事务解决方案的缺点:
⭐因为数据存在短暂的不一致,所以在某个时刻查询出的数据状态可能会不一致。
⭐对于事务一致性要求特别高的场景不太适用。

🔥最终一致性分布式事务解决方案_TCC是什么

在这里插入图片描述

概念
TCC(Try-Confirm-Cancel)又称补偿事务。

TCC核心思想
TCC分布式事务最核心的思想就是在应用层将一个完整的事务操作分为三个阶段。在某种程度上讲,TCC是一种资源,实现了Try、Confirm、Cancel三个操作接口。
在这里插入图片描述

Try阶段
Try阶段是准备执行业务的阶段,在这个阶段尝试执行业务。
⭐完成所有的业务检查,确保数据的一致性。
⭐预留必要的业务资源,确保数据的隔离性。
在这里插入图片描述
Confirm阶段
Confirm阶段是确认执行业务的阶段,在这个阶段确认执行的业务。
⭐真正地执行业务。
⭐不做任何业务逻辑检查,直接将数据持久化到数据库。
⭐直接Try阶段预留的业务资源。

Cancel阶段
Cancel阶段取消执行业务。
⭐释放Try阶段预留的业务资源。
⭐将数据库中的数据恢复到最初的状态。

TCC核心组成
在这里插入图片描述

🔥Hmily实现TCC分布式事务实战_认识Hmily-TCC

在这里插入图片描述
概述
Hmily是一款高性能,零侵入,金融级分布式事务解决方案,目前主要提供柔性事务的支持,包含 TCC , TAC (自动生成回滚SQL) 方案,未来还会支持 XA 等方案。

在这里插入图片描述

功能
⭐高可靠性 :支持分布式场景下,事务异常回滚,超时异常恢复,防止事务悬挂
⭐易用性 :提供零侵入性式的 Spring-Boot , Spring-Namespace 快速与业务系统集成。
⭐高性能 :去中心化设计,与业务系统完全融合,天然支持集群部署
⭐可观测性 :Metrics多项指标性能监控,以及admin管理后台UI展示
⭐多种RPC : 支持 Dubbo , SpringCloud , Motan , Sofa-rpc , brpc , tars 等知名RPC框架
⭐日志存储 : 支持 mysql , oracle , mongodb , redis , zookeeper 等方式
⭐复杂场景 : 支持RPC嵌套调用事务

Hmily对RPC框架的支持
⭐对Dubbo框架的支持
⭐对Spring Cloud框架的支持
⭐对BRPC框架的支持
⭐对Motan框架的支持
⭐gRPC框架的支持
⭐对Sofa-RPC框架的支持
⭐对Tars框架的支持

必要前提
⭐必须使用 JDK8+
⭐TCC模式必须要使用一款 RPC 框架, 比如 : Dubbo , SpringCloud , Montan

相关内容

热门资讯

新宝来和新朗逸选谁更好?网友:... 今天给各位分享新宝来和新朗逸选谁更好?网友:毫无悬念,朗逸全方位...的知识,其中也会对大众新宝来和...
pms系统是什么意思 极速百科... pms系统是什么意思目录pms系统是什么意思pms系统是什么意思mis系统是什么pms什么意思pms...
无影灯原理(无影灯原理图讲解)... 今天给各位分享无影灯原理的知识,其中也会对无影灯原理图讲解进行解释,如果能碰巧解决你现在面临的问题,...
蜂蜜的用途(蜂蜜的用途是什么)... 本篇文章极速百科给大家谈谈蜂蜜的用途,以及蜂蜜的用途是什么对应的知识点,希望对各位有所帮助,不要忘了...
16K纸有多大比A4的大还是小... 今天给各位分享16K纸有多大比A4的大还是小的知识,其中也会对16k的纸是a4纸的一半吗进行解释,如...
许昌新车上牌地址(许昌新车上牌... 今天给各位分享许昌新车上牌地址的知识,其中也会对许昌新车上牌地址查询进行解释,如果能碰巧解决你现在面...
八大艺术有哪些,艺术的八大类分... 八大艺术有哪些目录八大艺术有哪些艺术的八大类分别是什么世界公认的七大艺术是什么?什么被称八大艺术八大...
离我最近的北京现代4s店(离我... 本篇文章极速百科给大家谈谈离我最近的北京现代4s店,以及离我最近的北京现代4s店保养车对应的知识点,...
导轨油和机油的区别?(导轨油和... 今天给各位分享导轨油和机油的区别?的知识,其中也会对导轨油和机油的区别是什么进行解释,如果能碰巧解决...
免检卡板有什么好的,与熏蒸卡板... 本篇文章极速百科给大家谈谈免检卡板有什么好的,与熏蒸卡板有什么区别呢?,以及免检卡板图片对应的知识点...
东风雪铁龙c3xr怎么样(20... 本篇文章极速百科给大家谈谈东风雪铁龙c3xr怎么样,以及2021款东风雪铁龙c3xr对应的知识点,希...
圣诞节的意义(圣诞节的意义讲章... 本篇文章极速百科给大家谈谈圣诞节的意义,以及圣诞节的意义讲章对应的知识点,希望对各位有所帮助,不要忘...
c中getchar表示什么,g... c中getchar表示什么目录c中getchar表示什么getchar在c是什么意思getchar在...
军考网上哪里报名,直招军官的招... 军考网上哪里报名目录军考网上哪里报名直招军官的招录程序是什么?怎样在网上报名考兵2020军校报名时间...
微信红包祝福语8字,发红包祝福... 微信红包祝福语8字目录微信红包祝福语8字发红包祝福语八个字过年红包祝福语微信红包祝福语8字 微信红包...
王字的三横一竖是什么意思,三横... 王字的三横一竖是什么意思目录王字的三横一竖是什么意思三横一竖是什么字?王字的含义是?王的含义是什么王...
精英危险在哪买,精英危险怎么买... 精英危险在哪买目录精英危险在哪买精英危险怎么买船精英危险如何挖矿2022年精英危险值得购买吗精英危险...
尼桑两厢车有哪几款(尼桑两厢车... 本篇文章极速百科给大家谈谈尼桑两厢车有哪几款,以及尼桑两厢车有哪几款红色对应的知识点,希望对各位有所...
端午风俗有哪些传统,端午节有哪... 端午风俗有哪些传统目录端午风俗有哪些传统端午节有哪些习俗?有哪些寓意?端午节的习俗有哪些?端午节的风...
世界十大凶猛龟是哪些,十大凶猛... 世界十大凶猛龟是哪些目录世界十大凶猛龟是哪些十大凶猛龟排名是怎样的?最凶猛的乌龟有哪几种,最猛的三种...
简短情话8个字,很甜很撩的句子... 简短情话8个字目录简短情话8个字很甜很撩的句子八个字 又甜又撩的短句八个字8字爱情名言佳句用八个字形...
高考数学满分多少,高考数学总分... 高考数学满分多少目录高考数学满分多少高考数学总分多少分满分高中考试各科分数是多少?高考数学满分是多少...
吃鸡攻略和技巧手游,手游吃鸡怎... 吃鸡攻略和技巧手游目录吃鸡攻略和技巧手游手游吃鸡怎么练技术绝地求生大逃杀怎么玩 绝地求生各系统玩法技...
开了5年的帝豪后,我换成了奥迪... 今天给各位分享开了5年的帝豪后,我换成了奥迪A4L的知识,其中也会对进行解释,如果能碰巧解决你现在面...
ecco什么牌子,ecco什么... ecco什么牌子目录ecco什么牌子ecco什么牌子 ecco是哪个国家的品牌eoco是什么牌子ec...
汽车内外饰设计-仪表板设计构想... 今天给各位分享汽车内外饰设计-仪表板设计构想-连载05的知识,其中也会对仪表盘内饰进行解释,如果能碰...
酱油生抽老抽有什么区别,生抽老... 酱油生抽老抽有什么区别目录酱油生抽老抽有什么区别生抽老抽酱油有啥区别酱油、生抽、老抽有什么不同?老抽...
北京车牌外地违章怎么处理(北京... 本篇文章极速百科给大家谈谈北京车牌外地违章怎么处理,以及北京牌外地违章本地能处理吗对应的知识点,希望...
13寸电脑尺寸是多少厘米,13... 13寸电脑尺寸是多少厘米目录13寸电脑尺寸是多少厘米13英寸等于多少厘米13寸大概有多大?13.3寸...
管理员的英文缩写是什么,管理员... 管理员的英文缩写是什么目录管理员的英文缩写是什么管理员英文怎么写admn具体指的是什么?管理员的英文...