分布式事务及其常见解决方案
梳理和总结有关分布式事务及其常见的解决方案,将从事务的基本概念延伸到分布式领域在解决事务问题的基本思想,最后具体阐述一些常见的解决方案。
阅读更多
以前在学习数据库理论时已经接触过事务的概念以及事务ACID特性,对于分布式事务,即涉及多个服务器的事务,其中一个很大的不确定性就是服务器和网络的故障情况。那么在分布式场景下我们有什么手段可以保证事务的原子性?
提起事务的一个很常见的例子便是银行的转账操作,比如A给B转账X元,需要将A的账户先减去X元,然后给B的账户加上X元。这个转账的多个操作便是事务。事务定义了一个服务器的操作序列,服务器需要保证在多个客户端和服务器出现故障时的原子性。
而分布式事务就是涉及到多个服务器的事务。还是以转账例子为例,在单机时数据库系统已经为我们保证了事务操作的原子性,但在分布式场景下,A和B的账户可能分布在不同的服务器上,这时候又该如何保证多个服务器之间的原子性?这便是分布式事务首先必须要解决的问题。