一、分布式架构的CAP理论
-
一致性(Consistency) (所有节点在同一时间具有相同的数据)
-
可用性(Availability) (保证每个请求不管成功或者失败都有响应)
-
分隔容忍(Partition tolerance) (系统中任意信息的丢失或失败不会影响系统的继续运作
二、什么是分布式事物
事物:由一系列动作共同完成的一件事
分布式事物:又不同服务之间通过网络远程协作完成的事物
三、Seata 官方文档
Seata:一款开源的分布式式事物解决方案,致力于提供高性能和简单易用的分布式事物服务。Seata将为用户提供AT、TCC、SAGA和XA事物模式,为用户打造一站式的分布式解决方案。
3.1 AT 模式(两阶段)
机制原理:
一阶段 Prepare:业务数据和回滚日志记录在同一个本地事物中提交,释放本地锁和连接资源。
二阶段 提交/回滚:
提交:异步提交。
回滚:通过一阶段的回滚日志记录进行补偿机制
过程:
- 查询要变更的记录,向TC申请该记录的全局锁
- 生成变更SQL和UNDO LOG 日志记录的事物
- 提交:异步提交事物并提交结果给TC
- 回滚:通过UNDO LOG日志记录生成回滚SQL,汇报结果给TC
3.2 TCC模式
tcc模式其实也是两阶段模式,但是它和AT模式的区别在于,他的提交和回滚逻辑都是通过程序员自定义编写好的。
3.3 SAGA模式
saga模式适用于调用外部系统服务,导致不能进行一次性的事物提交或回滚。它是每个事物单独进行本地提交。回滚方式则是回滚出问题的事物及其之前的事物。为每个事物都单独编写提交和回滚逻辑