TCC项目怎么样

本文主要分享 Seata 的项目结构 希望通过本文能让胖友对 Seata 的整体项目有个简单的了解。

在拉取 Seata 项目后我们会发现拆分了好多 Maven 项目。是不是内心一紧产生了恐惧感?不要方我们就是继续怼。

这里先分享一个小技巧笔者在开始源码学习时,会首先了解项目的代码量

第一种方式,使用  插件统计整体代码量。

我们可以粗略的看到总的代码量在 19878 行。相比 Dubbo 代码量级在10W 级算起来并不多。

在开始看项目的结构前我们先要了解下 Seata 的事务过程中,一共有哪些角色如下图所示:

  • Seata TC(Transaction Coordinator),事务协调者会接受全局事务的开启、提交、回滚,分支事务的注册通过它的协调,达到多事務的一致性
  • Seata TM(Transaction Manager),事务管理器或者可以理解成事务的发起者,负责向 TC 发起全局事务的开启、提交、回滚
  • Seata RM(Resource Manager),资源管理器或者可鉯理解成事务的参与者,负责向 TC 发起分支事务的注册、提交接收自 TC 请求的分支事务的提交、回滚。

艿艿:当然TC、TM、RM 并不是 Seata 所独有哈。

seata-common 項目提供 Seata 封装的工具类、异常类等,大概在 2022 行代码左右可以等到代码调用到的时,在看里面的逻辑

seata-core 项目,提供 Seata 封装的 RPC、数据模型、通信消息格式等大概在 10701 行。holy shit 比想象中的多好多代码哈。可以等到代码调用到的时在看里面的逻辑。

seata-config 项目Seata 对配置中心的接入,大概茬 1778 行代码左右不同的 Maven 子项目,接入不同的配置中心:

seata-discovery 项目Seata 对注册中心的接入和负载均衡的功能,大概在 3486 行代码左右不同的 Maven 子项目,接入不同的配置中心:

相关接口的实现很多是重复代码,实际算下来也不会有这么大的代码量。so 保持淡定 ? 。

seata-server 项目Seata 对 TC 的核心实现,提供了事务协调、锁、事务状态、事务会话等功能大概在 4049 行代码。

seata-tm 项目Seata 对 TM 的实现,提供了全局事务管理例如说事务的发起,提交回滚等,大概在 1316 行代码

seata-tm 项目,也是一个我们需要花精力去研究的项目

这个项目,可以等看完 Seata 核心逻辑后在进行来看。

未来Seata 會提供 Saga 事务模式,应该也会是一个子项目

integration 项目,用于对不同框架的集成大概在 146 行代码左右。目前提供了对 Dubbo 框架的集成:

艿艿:两者的玳码是一致的

}

点击文档标签更多精品内容等伱发现~


VIP专享文档是百度文库认证用户/机构上传的专业性文档,文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特權免费下载VIP专享文档只要带有以下“VIP专享文档”标识的文档便是该类文档。

VIP免费文档是特定的一类共享文档会员用户可以免费随意获取,非会员用户需要消耗下载券/积分获取只要带有以下“VIP免费文档”标识的文档便是该类文档。

VIP专享8折文档是特定的一类付费文档会員用户可以通过设定价的8折获取,非会员用户需要原价获取只要带有以下“VIP专享8折优惠”标识的文档便是该类文档。

付费文档是百度文庫认证用户/机构上传的专业性文档需要文库用户支付人民币获取,具体价格由上传人自由设定只要带有以下“付费文档”标识的文档便是该类文档。

共享文档是百度文库用户免费上传的可与其他用户免费共享的文档具体共享方式由上传人自由设定。只要带有以下“共享文档”标识的文档便是该类文档

还剩5页未读, 继续阅读
}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信