站长网站大全,证书在线制作生成器,企业网站建设晋升,电商seo优化是什么意思简介 SEATA开源的分布式事务解决方案#xff0c;用于解决分布式系统中的数据一致性问题#xff0c;由阿里巴巴开源。 分布式系统#xff0c;数据存储在不同的资源管理器(数据库)#xff0c;需要保证分布式事务的原子性#xff0c;业界比较常用xa#xff0c;数据库标准实现…简介 SEATA开源的分布式事务解决方案用于解决分布式系统中的数据一致性问题由阿里巴巴开源。 分布式系统数据存储在不同的资源管理器(数据库)需要保证分布式事务的原子性业界比较常用xa数据库标准实现严格的一致性但性能较差不符合当前互联网系统高吞吐高并发的要求。Seata提供最终一致性的分布式事务解决方案牺牲严格一致性获得高性能。Seata支持tccsagaat其中at是seata内置方案同时也支持xa 本文分析seata技术架构核心组件
关键词
分布式事务
严格一致性/最终一致性
Transaction Coordinator 负责全局事务的生命周期管理和协调保证所有分支事务的一致性。
Transaction Manager 负责分支事务的提交和回滚接受TC的指令并执行相应的事务操作。
Resource Manager 负责本地事务的提交和回滚与TM进行通信执行相应的事务操作。
参考资料
seata官方网站 https://seata.apache.org/
技术架构 上图是seata的技术架构分4个内容部分事务框架流程应用端组件(左侧)服务组件(右侧)功能组件
事务框架流程
技术架构图展示事务框架流程
1、开启全局事务使用GlobalTransactional方法调起执行切面向TC注册全局事务TC生成XID
2、分支事务注册seata通过适配器像业务服务置入逻辑业务服务调用前执行注册分支事务从TC获得分支事务IDTC根据XID将分支事务与全局事务关联
3、分支事务报告业务服务执行自身业务逻辑例如执行sql写入数据库若成功通知TC分支事务成功
步骤34通常多个业务服务
4、全局提交事务或回滚分支服务全部成功TM通知TC全局事务成功否则通知TC全局事务失败
5、分支事务提交或回滚 TC收到全局事务的结果若成功则通知RM成功RM收到通知后执行清理工作如果失败了则RM进行回滚。
总述seata的框架流程是通用分布式事务流程各模式逻辑”塞”进框架内
应用端组件
at/tcc/saga/xa seata支持4种事务模式其中at是seata标准其他是实现业界标准
spring/springboot 配置/自动配置spring环境事务逻辑注入
jdbc代理实现 jdbc数据源的代理实现注入自身事务逻辑
sql解释器 解释sqltcc事务模式使用构建前后的数据的查询和更新语句
saga设计器 设计事务流程用于事务回滚和前向路径
适配器 通常实现为拦截器无侵入置入组件事务逻辑
事务管理器(tm)/资源管理器(rm)
事务协调服务(tc-server)
TC服务独立部署支持多个应用使用顾名思义协调事务执行
协调核心(coordinator-core)
存储 存储事务的状态和其他数据是分布式事务关键组件
会话/全局锁 意思跟数据库特性一样seata在框架层面提供会话锁的特性
功能组件
discovery tc服务的注册发现组件实现tc服务高可用组件
其他配置中心rpcmetircs
NEXT
系列后续文章详细分析
事务框架流程 分析参与框架流程的组件tmrm协调core事务模式 分析tccatsagaxatc-server 分析存储/会话/锁 4 公共组件 大部分以往文章分析过类似可以参考本人其他文章本系列不分析