首页 > 编程知识 正文

seata全局锁,seata分布式事务不生效

时间:2023-05-06 16:17:02 阅读:132824 作者:2247

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。 转载时请联系作者本人,注明原文章的链接地址

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。