随笔分类 - 分布式
摘要:上文我们分析了fescar的一阶段执行过程。在一阶段中,服务起始方发起全局事务并注册到TC。在调用协同服务时,协同服务的事务分支事务会先完成阶段一的事务提交或回滚,并生成事务回滚的undo_log日志,同时上报其事务状态。出现任何异常都会通知TC,TC会通知各个一阶段已提交的事物通过undo_log
阅读全文
摘要:Fescar是阿里18年开源的分布式事务的框架。Fescar的开源对分布式事务框架领域影响很大。作为开源大户,Fescar来自阿里的GTS,经历了好几次双十一的考验,一经开源便颇受关注。今天就来看了Fescar的代码,看看到底是怎么一回事。 Fescar与XA两阶段提交 在XA协议中分为两阶段: 第
阅读全文
摘要:tcc-transaction是TCC型事务java实现,具体项目地址 点我。本文通过tcc-transaction和Springcloud,分析下tcc-transaction的原理。 要了解一个东西首先就要先会用它,tcc-transaction本身有多个模块,由于我们是和springcloud
阅读全文
摘要:在 关于分布式事务的理解 一文中,最后留了一个坑是关于TCC框架的。当时由于时间问题耽搁了,最近总算有时间把这个坑填上了。 本文会大致介绍下两阶段和三阶段提交,以及TCC模式。 分布式事务分为 上文我们已近介绍了 异步确保型 和 最大努力通知 这两种服务模式的具体应用,接下来介绍下剩下两种。 两阶段
阅读全文
摘要:缓存由于其高并发和高性能的特性,已经在项目中被广泛使用,在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作。 从理论上来说,给缓存设置过期时间,是保证最终一致性的解决方案。这种方案下,我们可以 对存入缓存的数据设置过期时间,所有的写操作以数据库为准,对缓存操作只是尽最大努力即可。也就是说
阅读全文
摘要:其实分布式事物也是个老大难的问题了,从提出到现在一直都没有个特别优雅有效的解决方案,上周遇到个分布式的问题,我想了很久,也查了很多资料。找了几种方案,但都没有达到自己的预期,现在先记录下此时对分布式事务的理解。 分布式事务概述 1.为什么会需要分布式事务? 我们可以考虑下以下的场景,假设现在有一个电
阅读全文