分布式事务解决方案――柔性事务与服务模式
在我的博客中,介绍过很多关于分布式和事务的文章,在阅读本文之前,希望读者可以对这些基础知识有所了解,这里简单把之前的文章列举下,已经按照顺序排好,可按顺序阅读。 初识分布式系统 关于分布式一致性的探究 分布式系统的CAP理论(需要到博客中查看) 分布式系统的BASE理论(需要到博客中查看) Java中的事务――JDBC事务和JTA事务 Java中的事务――全局事务与本地事务 关于分布式事务、两阶段提交协议、三阶提交协议 深入理解分布式系统的2PC和3PC 这里简单总结下以前几篇文章,算是本文的背景知识。在分布式系统中,存在CAP理论,即可用性、数据一致性和分区容错性无法同时满足。所以,一个基于CAP的最终一致性理论BASE理论是目前解决分布式问题比较靠谱的。 在分布式系统中,是无法使用本地事务保证数据的一致性的。一种标准的分布式事务就是全局事务(DTP模型)。他是基于2PC来控制的。但是由于2PC自身就存在同步阻塞的问题,这也就导致全局事务效率很低。所以,这种全局事务并不适合解决大型网站的分布式事务问题。 柔性事务 在业内,主要用来解决分布式事务的方案是使用柔性事务。所谓柔性事务,相比较与数据库事务中的ACID这种刚性事务来说,柔性事务保证的是“基本可用,最终一致。”这其实就是基于BASE理论,保证数据的最终一致性。 虽然柔性事务并不像刚性事务那样完全遵循ACID,但是