一、背景
伴随着高性能的分布式系统演进,我们必然会经历 通过横向扩展节点 提高非热点数据的并发性能;而横向扩展节点实际是如下2方面的扩展变化:
- 扩展功能节点(对应应用的微服务化改造)
- 扩展数据节点(对应增加数据分片)
这些变化自然就引发 原来调用一个服务的一个接口就完成的功能,现在需要协同调用多个服务的多个接口才能完成。相信我们都遇到过因网络、机器、程序等不可靠,引发的数据一致性的问题。而数据的一致性与系统的可扩展性和高可用同样重要 是【基础IT架构】支撑业务高质量转型升级的重点也是难点。从蚂蚁金服的分布事务产品十几年的Roadmap可以看出其在数据一致性方面的坚持和不易(如今能快速使用他们的积累,幸甚至哉!),如下图所示:

从官宣得知,蚂蚁金服从微服务演进开始至今,大量的应用采用了TCC事务模型,可能也是得益于:
-
TCC模式关注功能扩展,在按照功能横向扩展资源时,解决微服务间调用的一致性问题,保证多资源访问的事务属性。
-
在早期没有现成成熟的分布式框架的条件下,其事务模型运转在业务层,不依赖底层数据资源的事务支持,能灵活应对服务的拆分。
-
也可能跟2007年TCC概念的提出有重大关联
二、起源
TCC(Try-Confirm-Cancel)的概念,最早是由 Pat Helland 于 2007 年发表的一篇名为《Life beyond Distributed Transactions:an Apostate’s Opinion》的论文提出。
三、核心思想
其核心思想是是:通过对资源进行预留,尽量减少对资源的锁定时间;如果事务提交则完成对预留资源的确认;如果事务回滚,则释放预

本文介绍了TCC(Try-Confirm-Cancel)事务模式的核心思想、角色职责及工作原理。TCC模式通过预留资源减少锁定时间,确保数据一致性,适用于订单类业务场景。
最低0.47元/天 解锁文章
8623

被折叠的 条评论
为什么被折叠?



