分布式事务
分布式事务 分布式理论 单个数据库的性能产生瓶颈的时候,我们可能对数据库进行分区,这里所说的分区是指物理分区,分区之后可能不同的库就处于不同的服务器上了,这个时候单个数据库的ACID已经不能适应这种情况了,而在这种ACID的集群环境下,再想保证集群的ACID会导致我们的系统变得很差,这个时候我们需要引入CAP原则。 一致性(Consistency) : 客户端知道一系列的操作都会同时发生(生效) 可用性(Availability) : 每个操作都必须以可预期的响应结束 分区容错性(Partition tolerance) : 即使出现单个组件无法可用,操作依然可以完成 具体地讲在分布式系统中,在任何数据库设计中,一个Web应用至多只能同时支持上面的两个属性。显然,任何横向扩展策略都要依赖于数据分区。因此,设计人员必须在一致性与可用性之间做出选择。 [了解] 数据库支持2PC,又叫XA Transactions,MySQL5.5、SQL Server2005、Oracle7开始支持。 其中,XA是一个两阶段提交协议,该协议分为以下两个阶段: ·第一阶段:事务协调器要求每个涉及到事务的数据库预提交(precommit)此操作,并反映是否可以提交。 ·第二阶段:事务协调器要求每个数据库提交数据。 如果任何一个数据库否决此次提交,那么所有数据库都会被要求回滚它们在次数据库中的那部分信息