Seata sage模式
1.主要是通过状态机,流程去执行,状态机说白了,就是工作流,主要配置json文件,代码往下执行
也存在TCC模式中的问题,空回滚,悬挂问题,幂等性问题
2.seata 3中模式的对比
AT模式,效率不高,事务的实时性比价好,使用比较简单,兼容所有的基于jdbc规范
的orm框架,RM是使用dataSourceProxy来做处理的
TCC模式,RM不需要代理数据源,跟TC通讯,注册分支事务,调用try方法
try接口主要做的事情,冻结资源,不是真正的去操作目标字段
commit操作目标字段,扣除预留字段的值
rollBack,只会回滚try接口的数据
tcc规定,如果第一阶段成功,那么第二阶段的commit一定成功
saga 类似流程一个流程引擎,默认需要seata的3张表
ID发号器
1.UUID,500年重复一次,完全没有规律
2.现在经常使用的是,百度的,UIDGenerator ,底层使用的都是雪花算法。一个64的算法,
sign 1,delta secodes 28,woker node id 22 ,sequence 13
常见的问题,时钟回拨问题,比如机器恢复出厂设置,2019-12-8,继续累加,会出现主机冲突的问题
雪花算法是 woker node id 这一位是配置死的,百度的是重启机器的时候也会重新生成的
3.CachedUidGenerator,消费了未来时间,生成id实际上跟时间没有关系,也解决了伪共享的问题,加快了
并发执行速度,采用了RingBuffer
Seata sage模式及ID发号器
最新推荐文章于 2024-08-07 09:39:01 发布