springboot 事务分布式攻略
springboot 事务分布式攻略学习笔记整理
程序猿_产品狗
这个作者很懒,什么都没留下…
展开
-
八 三阶段提交事务
为什么有三阶段提交事务因为2阶段提交存在单点故障,同步阻塞,网络脑裂等问题,所以在两阶段的基础上做了改良,并提出了3阶段提交的概念2阶段提交和3阶段提交的区别3阶段在2阶段的基础上做了2个改进点∶1.增加了起时机制,同时为协授者和参与者都引入题时机制。2.在2阶段的第1和第2中间插入Lee一个提交准备(PreCommitl)阶段。插入的这个阶段能保证最后提交之前,各个节点的状态都是一致的.所谓的三个阶段分别是∶执行,询问,最后真正缓交。第一阶段∶CanCommit第二阶段∶PreCommi原创 2020-07-28 18:06:47 · 161 阅读 · 0 评论 -
七 两阶段事务的问题
两阶段事务-协调者宕机分析1.如果在第一阶段,协调者宕机,那么所有参与者将无法再收到协调者第二阶段的commit或rollback命令,故会一直阻塞下去,本地事务无法结束解决方案∶所有参与者统一rollback(因为还未进入第二阶段,所有参与者都不会接收到提交或回滚的命令,当前事务是无法继续提交的,故只能回滚。)2.如果在第二阶段,协调者宕机,那么可能部分参与者没有接收到Commit、rollback,那么这部分没有接收到命令的参与者都会一直阻塞下去。两阶段事务-参与者宕机分析1.如果在第一阶原创 2020-07-28 17:34:25 · 185 阅读 · 0 评论 -
六 两阶段提交事务
什么是两阶段提交?两阶段提交协议,简称2PC,全称是two-phase commit protocol,2PC意思就是1次事务分为2个阶段;是非常经典的强一致性、中心化的原子提交协议中心化是指协议中有2种角色∶一个中心协调者和N个参与者。协调者∶ TM事务管理器,负责协调和管理事务。参与者∶RM资源管理器,可以理解为mysql,或某个微服务(订单服务、库存服务等等)举例∶两阶段提交-应用场景2阶段提交的学习案例,我们采用用户下单使用余额+红包支付来2阶段提交的具体应用。假设用户下单操作来自3个系原创 2020-07-22 21:58:49 · 245 阅读 · 0 评论 -
五 分布式事务模型DTP
谁提出了分布式事务DTP模型?分布式事务模型DTP(全称为Distributed Transaction Procesing Reference Model)和DTP XA规范(全称为Dstrluted Tanacto Poesng∶The XA Specification)的制定者是X/Open,即现在的open group,是一个全球联盟的独立的组织open group 全球白金会员有8家,我们中国华为公司就赫赫在列。open group 这个全球组织的主要作用是制定各种行业技术标准。open原创 2020-07-22 16:07:12 · 746 阅读 · 0 评论 -
四 BASE定理
什么是分布式BASE定理?BASE是Basically Available(基本可用)、Soft state(软状态)和Eventuall consistent(最终一致性)三个短语的缩写。BASE理论是由eBay架构师提出的。BASE定理来源∶是CAP中一致性和可用性的权衡结果,它来自于大规模互联网分布式系统的实践总结,是基于CAP定理逐步演化而来的。BASE定理的核心思想∶即使无法做到强一致性,但是每个应用可以根据自身的业务特定,采用合适的方式来达到最终一致性。如何理解BASE定理的基本可用性原创 2020-07-22 10:44:13 · 375 阅读 · 0 评论 -
三 CAP定理
什么是分布式CAP定理?一言以蔽之:在分布式系统中,网络故障,服务瘫痪,整个系统然可工作.分布式CAP举例思考张三有100元优惠卷,在淘宝买了件衣服。思考3个问题:1.如何体现C数据一致性?整个分布式系统中,一致性体现这笔订单,必须扣除100元优惠卷。2.如何体现A可用性?整个分布式系统中,可用性体现在张三下订单的时候,如果订单服务或卡卷服务瘫痪了,这时不能影响张三下订单。(一般做法是采用集群部署)3.如何体现P分区容错性?整个分布式系统中,分区容错体现在张三下订单的时候,突然订单服原创 2020-07-16 18:01:34 · 447 阅读 · 0 评论 -
二 本地事务vs分布式事务
本地事务和分布式事务的区别?本地事务:关系型数据库中,由一组SQL组成的一个执行单元,该单元要么整体成功,要么整体失败。它有一个缺点:仅支持单库事务,并不支持跨库事务。商品服务只操作了一个数据库mySql,一般情况下,只操作一个数据库,并多条sq组成同一个事务,就称为本地事务。分布式事务:是指一个业务需要同时操作多个数据库的情况下,而且必须保持ACID的特性。一般应用于微服务的多服务处理。在电商系统中,支付订单,就是一个分布式事务了第一步:支付服务,修改支付订单状态。第二步:订单服务,订单原创 2020-07-16 15:42:46 · 828 阅读 · 0 评论 -
一 本地事务
什么是事务?事务(Transaction)是关系型数据库中,由一组SQL组成的一个执行单元,该单元要么整体成功,要么整体失败。事务的ACID特性事务ACID特性,原子性,一致性,隔离性,持久性。这4个属性统称为ACID特性。原子性:指事务包含的所有操作sql要么整体成功,要么整体失败。持久性:指一个事务一旦被提交了,那么数据就永久存储在磁盘中,即使系统故障了,数据也不会丢失!如果事务没有进行隔离,会出现3种严重的问题:第一个问题:赃读指一个事务处理的过程中读取了另一个未提交(回滚)原创 2020-07-16 11:21:48 · 191 阅读 · 1 评论