自然搜索优化,关键词优化课程,桂林北站离阳朔多远,桂林生活网appSeata Sea学习分布式事务Seata二阶段提交协议AT模式TCC模式 Seata服务搭建 Sea学习 事务#xff1a;事务是访问数据库并更新数据库中各项数据的一个程序执行单元。在关系数据库中#xff0c;一个事务由一组或多组SQL语句组成。事务应该具有4个属性#xff1a;原子性、一致性… Seata Sea学习分布式事务Seata二阶段提交协议AT模式TCC模式 Seata服务搭建 Sea学习 事务事务是访问数据库并更新数据库中各项数据的一个程序执行单元。在关系数据库中一个事务由一组或多组SQL语句组成。事务应该具有4个属性原子性、一致性、隔离性、持久性。例如更新商品的接口这就是一个事务事务是对程序而言的。 原子性事务是一个不可分割的工作单元事务中包括的诸多操作要么都做要么都不做。一致性保持数据的一致隔离性一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的并发执行的各个事务之间不能互相干扰。隔离性又分为四个级别来保证事务之间的隔离性读未提交、读已提交、可重复读、串行化(事务串行执行不会产生并发问题)持久性一个事务执行并提交后就持久到数据库 本地事务大多数场景下我们的应用都只需要操作单一的数据库这种情况下的事务称之为本地事务。本地事务的ACID特性由数据库直接支持。
分布式事务
两种分布式事务场景1、同一服务不同数据库2、同一数据库不同服务此时都会产生分布式事务的问题。此时用本地数据库事务是无法支持分布式事务的。此时用Seata处理分布式事务问题
Seata seata的三大角色 在seata的架构中一共有三个角色 TC:事务协调者TM:事务管理器RM:资源管理器 管理分支事务处理的资源与TC交谈以注册分支事务的状态并驱动分支事务提交或回滚。其中TC为单独部署的server服务端TM和RM为嵌入到应用中的client客户端。
二阶段提交协议
常见的分布式事务解决方案
seata阿里分布式事务框架消息队列sagaXA 他们都有一个共同点都是遵循二阶段协议2PC。两阶段是指完成整个分布式事务划分成两个步骤完成。 1、准备阶段在这个阶段事务的协调者会向所有涉及的数据库或者资源管理器发送准备请求。每个数据库或者资源管理器收到准备请求后会执行相应的操作并且记录准备状态。如果准备成功就向协调者发送准备就绪的ask。协调者等待所有参与者都发送准备就绪的信号如果有任何一个参与者未能准备就绪或者出现了错误协调者将会发送回滚请求给所有参与者。 提交阶段如果所有参与者都准备就绪协调者会向他们发送提交请求。参与者接收到提交请求后会正式提交事务并且释放相关资源。如果有任何一个参与者未能接收到请求或者出现了错误协调者将会发送回滚请求给所有参与者。 图例第一阶段 第二阶段 就像是军训一样准备阶段教官让所有同学都立正站好所有同学都得对齐站好谁没有站好全部同学都得重新立正直到所有同学都准备好然后训练阶段同学们都站一排齐步走只要有一个没走齐的就重新开始已经尽力去解释了我相信即使没有学过计算机的应该也知道这玩意是什么了嘿嘿看着是不是毫无压力 AT模式 一阶段 befrore image:将要更新的数据查询出来。afer image:事务执行后将执行完的数据查出来 二阶段 二阶段提交 因为一阶段已经完成了提交动作所以二阶段如果没有异常则直接删除before image、after image、行锁 二阶段回滚 根据before image拿到逆向sql回滚数据回滚完成后删除befor image、after image、行锁
TCC模式 Seata服务搭建