- Zookeeper
- 分布式锁
- 创建对应的节点、消耗资源
- ZK的Watcher机制,唤醒等待、羊群效应
- 创建有序的节点
- 主要角色
- Leader:写请求的唯一处理者
- Follower:处理读请求
- Observer:无选举投票权的Follower
- 选举算法
- 先对比zxid,zxid大者胜出
- zxid一致,myid大者成为leader
- 分布式锁
- TCC - Try、Confirm、Cancel
- 分布式事务Seata
-
具体角色
- 事务协调器(TC):维护全局&分支事务的状态,驱动全局提交或回滚
- 事务管理器(TM):定义全局事务的范围,开始全局事务,提交或回滚全局事务
- 资源管理器(RM):管理分支事务正在处理的资源,与TC进行对话以【注册分支事务】并报告分支事务的状态,并【驱动分支事务的提交或回滚】
-
AT模式 - 把每个数据库当做一个 Resource,在本地事务提交时会去注册一个分支事务。
image.png
-
TCC模式 - Seata 框架把每组 TCC 接口当做一个 Resource,称为 TCC Resource。这套 TCC 接口可以是 RPC,也以是服务内 JVM 调用。第一阶段T,二三阶段CC
image.png
-
异常控制
-
空回滚 - Try未执行,Cancel执行了 - 增加事务控制表
image.png
-
幂等 - 多次调用二阶段方法 - 记录提交状态
image.png
-
防悬挂 - Cancel比Try先执行 - Try执行的时候检查二阶段是否已执行
image.png
-
-
TCC性能提升 - 同库模式
image.png
-
TCC性能提升 - 异步化 - 第一阶段执行完就相当于成功了,二阶段异步执行 。大促期间,用户的钱实时扣减,商户的资金非实时到账。
-
- CAP理论
- Consistency - 一致性
- Availability - 可用性
- Partition tolerance - 分区容错性
- BASE理论
- Basically Available(基本可用)
- Soft state(软状态)
- Eventually consistent(最终一致性)
网友评论