seata 学习笔记

前言

本篇只是学习seata的笔记,更多的是个人的理解,难免有误,如果有误还请包容、指出、共同进步。谢谢~

术语

TC

TC (Transaction Coordinator) - 事务协调者
维护全局和分支事务的状态,驱动全局事务提交或回滚

TM

TM (Transaction Manager) - 事务管理器​
定义全局事务的范围:开始全局事务、提交或回滚全局事务。

RM

RM (Resource Manager) - 资源管理器​
管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。

四个模式

AT模式

  • 两阶段提交,第一阶段提交本地事务,准备undo_log 回滚日志 向服务端通知。二阶段异步提交事务,或者去回滚一阶段数据
  • 代码无侵入
  • 改写实际执行的SQL
  • 数据库需支持事务

XA模式

  • XA于AT模式基本相同,不同点在于要使用支持XA协议数据库

TCC模式

  • Try Confirm Cancel
  • 模式不依赖数据库,完全由代码实现,数据的预备、事务的commit以及事务的rollback全由用户自己编写逻辑

saga模式

  • 模式不依赖数据库,完全由代码实现,业务的流转使用状态机,需要学会状态机的编写
  • 个人认为这个模式类似于tcc模式,只不过比tcc模式更复杂,因为添加了一些扩展性,所以在复杂性和功能性上会比tcc强大
  • 也有不需要状态机的配置
  • 功能强大,学习成本过高

配置中心

  • seata的配置中心可以使用nacos,apollo,etcd3,consul,zookeeper

其他说明

  • 有个全局锁概念,保证各事务间的完整性
  • 关于全局锁的尝试会有一个范围,避免死锁

隔离级别

  • 本地隔离级别就算是读已提交以及以上级别,全局事务的隔离级别也是读未提交
  • 关于想实现全局事务的读已提交,seata文档提示他们会代理select for update

备注

  • 理解了TC、TM、RM的含义,没理解具体出现的位置,还没有实际操作过,有时间得实际操作一次才行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值