Seata事务性客户端执行流程分析,了解存在问题的Seata原理全球事务性扫描仪一、事务性扫描仪设计图二、 组件说明1.abstractautoproxycreator2. disposable bean:3.initializing bean:4.application contextaware 3, 流程分析1.applicationcontextaware2. abstractautoproxycreator3. initializing bean4. disposablebeanglobaltransactionalionalintercercepton 拦截器3、流程分析1、方法Interceptor2.包事务执行机构3 .事务模板执行执行执行内容4 .事务类型分布式事务启动及可视
带问题了解Seata的原理
1、Spring事务类型有几种?
1、Spring启动过程中是如何将事务方法组织到Aop阻止程序中的?
2、SpringBoot的Seata事务如何传递?
3、SpringCloud如何实现Seata客户端事务的传递?
4、Seata事务传递如何保证线程的安全?
5、Seata的执行入口是什么?
6、Seata的是如何实现数据源代理的?
7、a服务-B服务、a服务-C服务、c错误、b服务时是如何回滚的?
8、提交事务阶段,网络抖动如何保证数据的完整性?
9、Seata的TM、RM、TC如何通信?
全球事务扫描仪一、事务扫描仪设计图
二.组件说明全球扫描扫描仪继承并实现了SpringBoot的组件
继承组件:
AbstractAutoProxyCreator
实施组件:
DisposableBean,ApplicationContextAware,InitializingBean
1 .创建1.AbstractAutoProxyCreator动态代理对象
2.disposable bean :您可以在bean生命周期结束之前调用destory ()方法进行结束工作,也可以使用destory-method。
3 .初始化bean :接口提供了bean的初始化方法。 此方法只包含afterPropertiesSet方法,继承接口的所有子类都在bean初始化时执行。
4 .应用程序上下文软件开发的IOC容器
三.流程分析1.ApplicationContextAware
2.AbstractAutoProxyCreator重写wrapIfNecessary
1 .设置事务类型拦截器
2 .判断方法是否有事务或锁定评论
设置Bean的代理信息
3 .初始化bean通过实现初始化bean具有afterPropertiesSet的初始化方法
初始化连接RM、TM
4.DisposableBean
全球交易拦截器一、交易拦截器设计图
二.组件说明全球互联扫描仪实现了SpringBoot的组件
实施组件:
方法拦截器
1、方法拦截器在spring boot下通过两种方法设置AOP (实现织入weave )。
如果使用@Aspect注释的DefaultPointcutAdvisor、流程分析1和方法中断器,则方法将包含全局转换或全局锁定注释(如果有)
2 .办公执行机构的包装
3 .事务模板执行excute方法的内容
4 .事务类型
propagation_required-支持当前事务,如果当前没有事务,则创建新事务。 这是最常见的选择。
propagation_requires_new-创建新事务。 如果当前事务存在,则挂起当前事务。
propagation_not_supported-以事务以外的方式执行操作,如果当前事务存在,则挂起当前事务。
propagation_supports-支持当前事务,如果当前没有事务,则将其作为非事务运行。
propagation_never-作为非事务执行,如果当前存在事务,则抛出异常。
popagation_mandatory-支持当前事务,如果当前没有事务,则抛出异常。
事务传播模式1
事务传播模式方式2
启动分布式事务,执行业务代码,并将事务信息发送到回滚1和Tm
2、执行业务代码
3、业务错误通知tm,tm通知所有tc回滚
4、通知tm业务执行成功,tm通知其他tc提交事务
欢迎各位技术人员与微信交流。 请注明微来自CSDN。 转载时请联系作者本人,注明原文章的链接地址