澳门六合彩开奖现场 Seata 源码

澳门六合彩
新澳门六合彩内幕资料

你的位置:澳门六合彩 > 新澳门六合彩内幕资料 > 澳门六合彩开奖现场 Seata 源码

澳门六合彩开奖现场 Seata 源码

发布日期:2024-11-06 21:16    点击次数:150

中枢接口和类

ResourceManager

ResourceManager 是 seata 的遑急组件之一,RM 谨慎处置分支数据资源的事务。

AbstractResourceManager 兑现 ResourceManager 提供模板时期。DefaultResourceManager 适配所有的 ResourceManager,所有时期调用齐委派给对应谨慎的 ResourceManager 处理。

DataSourceManager

此为 AT 边幅中枢处置器,DataSourceManager 袭取 AbstractResourceManager,处置数据库 Resouce 的注册,提交以及回滚等。

AsyncWorker

DataSourceManager 事务提交委派给 AsyncWorker 进行提交的,因为齐成功了,无需回滚成功的数据,只需要删除生成的操作日记就行,给与异步神色,普及后果。

io.seata.rm.datasource.AsyncWorker#doBranchCommitsUndoLogManagerFactory.getUndoLogManager(dataSourceProxy.getDbType).batchDeleteUndoLog(xids, branchIds, conn);

UndoLogManager

TransactionManager

DefaultTransactionManager

TransactionManagerHolder 为创建单例 TransactionManager 的工场,不错使用 EnhancedServiceLoader 的 spi 机制加载自界说的类,默许为DefaultTransactionManager。

GlobalTransaction

人到了中年,要是工作没了,还欠一屁股饥荒,那可真是被命运狠狠拿捏住了,一点退路都没有。

GlobalTransaction 接口提供给用户开缘起务,提交,回滚,取得气象等时期。

DefaultGlobalTransaction

DefaultGlobalTransaction 是 GlobalTransaction 接口的默许兑现,它握有 TransactionManager 对象,默许开缘起务超频频间为 60 秒,默许称号为 default,因为调用者的业务时期可能多重嵌套创建多个 GlobalTransaction 对象开缘起务时期,因此 GlobalTransaction 有 GlobalTransactionRole 脚色属性,唯独Launcher 脚色的才有开启、提交、回滚事务的职权。

GlobalTransactionContext

GlobalTransactionContext 为操作 GlobalTransaction 的器具类,提供创建新的 GlobalTransaction,取得当前方程有的 GlobalTransaction 等时期。

GlobalTransactionScanner

GlobalTransactionScanner 袭取 AbstractAutoProxyCreator 类,即兑现了 SmartInstantiationAwareBeanPostProcessor 接口,会在 spring 容器启动运升沉bean 的时期,对 bean 进行代理操作。wrapIfNecessary 为袭取父类代理 bean 的中枢时期,若是成立了 service.disableGlobalTransaction 为 false 属性则注解不见效顺利复返,不然对 GlobalTransactional 或 GlobalLock 的时期进行阻难代理。

GlobalTransactionalInterceptor

GlobalTransactionalInterceptor 兑现 aop 的 MethodInterceptor 接口,对有 @GlobalTransactional 或 GlobalLock 注解的时期进行代理。

TransactionalTemplate

TransactionalTemplate 模板类提供了一个开缘起务,膨伟业务,成功提交和失败回滚的模板时期 execute(TransactionalExecutor business)。

try { // 2. If the tx role is 'GlobalTransactionRole.Launcher', send the request of beginTransaction to TC, // else do nothing. Of course, the hooks will still be triggered. beginTransaction(txInfo, tx); Object rs; try { // Do Your Business rs = business.execute; } catch (Throwable ex) { // 3. The needed business exception to rollback. completeTransactionAfterThrowing(txInfo, tx, ex); throw ex; } // 4. everything is fine, commit. commitTransaction(tx); return rs;} finally { //5. clear resumeGlobalLockConfig(previousConfig); triggerAfterCompletion; cleanUp;}

Resource

Resource 能被 ResourceManager 处置何况八成关联 GlobalTransaction。

DataSourceProxy

DataSourceProxy 兑现 Resource 接口,BranchType 为 AT 自动边幅。它袭取 AbstractDataSourceProxy 代理类,所有的 DataSource 关系的时期调用传入的targetDataSource 代理类的时期,除了创建 connection 时期为创建 ConnectionProxy 代理类。对象运升沉时取得辘集的 jdbcUrl 行动 resourceId,并注册至DefaultResourceManager 进行处置。同期还提供取得原始辘集不被代理的 getPlainConnection 时期。

ExecuteTemplate

ExecuteTemplate 为具体 statement 的 execute,executeQuery 和 executeUpdate 膨大提供模板时期。

Executor

SQLRecognizer

SQLRecognizer 识别 sql 类型,取得表名,表笔名以及原生 sql

UndoExecutorFactory

UndoExecutorFactory 把柄 sqlType 生成对应的 AbstractUndoExecutor。

UndoExecutor 为生成膨大 undoSql 的中枢。若是全局事务回滚,它会把柄 beforeImage 和 afterImage 以及 sql 类型生成对应的反向 sql 膨大回滚数据,并添加脏数据校验机制,使回滚数据愈加可靠。

DefaultCoordinator

DefaultCoordinator 即为 TC,全局事务默许的事务攀附器。它袭取 AbstractTCInboundHandler 接口,为 TC 接管 RM 和 TM 的 request 苦求数据,是进行相应处理的处理器。兑现 TransactionMessageHandler 接口,去向理收到的 RPC 信息。兑现 ResourceManagerInbound 接口,发送至 RM 的 branchCommit,branchRollback 苦求。

Core

Core 接口为 seata 处理全局事务攀附器 TC 的中枢处理器,它袭取 ResourceManagerOutbound 接口,接纳来自 RM 的 rpc 汇集苦求 (branchRegister,branchReport,lockQuery)。同期袭取 TransactionManager 接口,接纳来自 TM 的 rpc 汇集苦求(begin, commit,rollback,getStatus),另外提供提供 3 个接口时期。

GlobalSession

GlobalSession 是 seata 攀附器 DefaultCoordinator 处置景仰的遑急部件,当用户开启全局漫衍式事务,TM 调用 begin 时期苦求至 TC,TC 则创建GlobalSession 实例对象,复返惟一的 xid。它兑现 SessionLifecycle 接口,提供 begin,changeStatus,changeBranchStatus,addBranch,removeBranch 等操作 session 和 branchSession 的时期。

BranchSession

BranchSession 为分支 session,处置分支数据,受 globalSession 融合更变处置,它的 lock 和 unlock 时期由 lockManger 兑现。

LockManager

DefaultLockManager 是 LockManager 的默许兑现,它取得 branchSession 的 lockKey,调动成 List,委派 Locker 进行处理。

Locker

Locker 接口提供把柄行数据取得锁,开释锁澳门六合彩开奖现场,是否锁住和消逝所有锁的时期。



上一篇:澳门六合彩 爱情不是奢侈芳华的成本, 它值得咱们帮忙与进入

下一篇:新澳门六合彩内幕资料 当中国球员学霸辈出, 番邦球员却在“山公变东谈主”?

Powered by 澳门六合彩 @2013-2022 RSS地图 HTML地图