Seata
weixin_42073629
这个作者很懒,什么都没留下…
展开
-
Seata AT 模式启动源码分析
从上一篇文章「分布式事务中间件Seata的设计原理」讲了下 Seata AT 模式的一些设计原理,从中也知道了 AT 模式的三个角色(RM、TM、TC),接下来我会更新 Seata 源码分析系列文章。今天就来分析 Seata AT 模式在启动的时候都做了哪些操作。客户端启动逻辑TM 是负责整个全局事务的管理器,因此一个全局事务是由 TM 开启的,TM 有个全局管理类 GlobalTransaction,结构如下:io.seata.tm.api.GlobalTransactionpublic原创 2020-07-17 17:38:17 · 361 阅读 · 0 评论 -
分布式事务中间件Seata的设计原理
在微服务架构体系下,我们可以按照业务模块分层设计,单独部署,减轻了服务部署压力,也解耦了业务的耦合,避免了应用逐渐变成一个庞然怪物,从而可以轻松扩展,在某些服务出现故障时也不会影响其它服务的正常运行。总之,微服务在业务的高速发展中带给我们越来越多的优势,但是微服务并不是十全十美,因此不能盲目过度滥用,它有很多不足,而且会给系统带来一定的复杂度,其中伴随而来的分布式事务问题,是微服务架构体系下必然需要处理的一个痛点,也是业界一直关注的一个领域,因此也出现了诸如 CAP 和 BASE 等理论。在今年年初,阿原创 2020-07-17 17:17:19 · 177 阅读 · 0 评论 -
Fescar 源码走读(3)之分支事务流程
AsyncWorker目前只实现了branchCommit,用于在分支事务提交后异步删除undo sql记录,目前branchrollback接口还没有实现private void doBranchCommits() { if (ASYNC_COMMIT_BUFFER.size() == 0) { return; } Map<String, List<Phase2Conjava>> mappedConjavas = new HashMap原创 2020-06-15 19:44:38 · 147 阅读 · 0 评论 -
Fescar 源码走读(2)之 Fescar 服务端
服务端启动:public static void main(String[] args) throws IOException { RpcServer rpcServer = new RpcServer(WORKING_THREADS); if (args.length > 0) { int port = Integer.parseInt(args[0]); rpcServer.setListenPort(port原创 2020-06-15 19:39:12 · 138 阅读 · 0 评论 -
Fescar 源码走读(1)之业务调用方
先简单走一下主流程(仅做参考,如有错误后续更正)先从GlobalTransactional看起,这个标签是全局事务发起的标志,它是通过GlobalTransactionScanner方法在初始化对象之前自动扫描GlobalTransactional标签,创建相应方法所在类的代理类,intecepter是GlobalTransactionalInterceptorpublic Object invoke(final MethodInvocation methodInvocation) throws原创 2020-06-15 19:36:40 · 157 阅读 · 0 评论 -
GTS 解密 —— GTS的原理、架构与特点
全局事务服务(Global Transaction Service,简称 GTS)是阿里新推出的分布式事务处理方案,对其深入分析的资料相对匮乏。本文的目标是剖析GTS的技术路线,厘清其优势与约束。文章参考了GTS公开的专利、产品文档、相关网页,文章中肯定有不准确的地方,欢迎各位同学拍砖与指正。1. GTS 的目标GTS是一个面向互联网交易场景的分布式事务解决方案。制约分布式事务的三个因素分布式事务是互联网交易场景面临的关键问题之一。不同于搜索、社交、联机分析应用,电子商务、支付是典型的交易场原创 2020-06-15 19:33:11 · 1198 阅读 · 0 评论 -
Seata 源码分析 —— 项目结构一览
1. 概述本文主要分享Seata 的项目结构。 希望通过本文能让胖友对 Seata 的整体项目有个简单的了解。在拉取 Seata 项目后,我们会发现拆分了好多Maven 项目。是不是内心一紧,产生了恐惧感?不要方,我们就是继续怼。2. 代码统计这里先分享一个小技巧。笔者在开始源码学习时,会首先了解项目的代码量。第一种方式,使用IDEA Statistic插件,统计整体代码量。我们可以粗略的看到,总的代码量在 19878 行。相比 Dubbo 代码量级在...原创 2020-06-14 18:38:34 · 857 阅读 · 0 评论 -
Seata 源码分析 —— 调试环境搭建
0. 介绍2019 年 1 月,阿里巴巴中间件团队发起了开源项目Fescar(Fast & EaSy Commit And Rollback),和社区一起共建开源分布式事务解决方案。Fescar 的愿景是让分布式事务的使用像本地事务的使用一样,简单和高效,并逐步解决开发者们遇到的分布式事务方面的所有难题。Fescar 开源后,蚂蚁金服加入 Fescar 社区参与共建,并在 Fescar 0.4.0 版本中贡献了 TCC 模式。为了打造更中立、更开放、生态更加丰富的分布式事务开源社区,.原创 2020-06-14 18:31:20 · 1572 阅读 · 0 评论 -
Dubbo 分布式事务 Seata 入门
1. 概述在《Seata 极简入门》文章中,我们对 Seata 进行了简单的了解,并完成了 Seata 的部署。而本文,我们将 Dubbo 服务接入 Seata 来实现分布式事务。Seata是阿里开源的一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。注意,考虑到 Nacos 作为注册中心在国内越来越流行,本文将采用 Nacos 作为 Dubbo 的注册中心。友情提示:如果对 Nacos 不了解的胖友,可以参考《Nacos 极简入门》文章。2. AT 模.原创 2020-06-14 18:16:10 · 548 阅读 · 0 评论 -
Spring Boot 分布式事务 Seata 入门
1. 概述在《芋道 Seata 极简入门》文章中,我们对 Seata 进行了简单的了解,并完成了 Seata 的部署。而本文,我们将纯Spring Boot 应用接入 Seata 来实现分布式事务。Seata是阿里开源的一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。2. AT 模式 + 多数据源示例代码对应仓库:lab-52-multiple-...原创 2020-04-29 00:15:55 · 1480 阅读 · 1 评论 -
Spring Cloud Alibaba 分布式事务 Seata 入门
1. 概述在《Seata 极简入门》文章中,我们对 Seata 进行了简单的了解,并完成了 Seata 的部署。Seata是阿里开源的一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。目前,在 Spring Cloud 体系中,我们一般采用两种方式来实现服务的调用:方式一,使用 Dubbo 发布服务,并使用 Dubbo 调用服务 方式二,使用 Spring MVC 提供 API 接口,并使用 Feign 调用服务Seata内置对 Dubbo 和 Feign..原创 2020-06-13 19:21:48 · 850 阅读 · 0 评论 -
Seata 极简入门
1. 概述Seata是阿里开源的一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。1.1 四种事务模式Seata 目标打造一站式的分布事务的解决方案,最终会提供四种事务模式:AT 模式:参见《Seata AT 模式》文档 TCC 模式:参见《Seata TCC 模式》文档 Saga 模式:参见《SEATA Saga 模式》文档 XA 模式:正在开发中...目前使用的流行度情况是:AT > TCC > Saga。因此,我们在学习 Seata 的时候.原创 2020-06-13 19:00:43 · 1501 阅读 · 1 评论