何为分布式事务?
随着公司业务发展和数据量的增长,数据库单表超过千万级别时,数据库性能会直线下降,这时需要数据分区(包括分库&分表),
这时数据库本地事务将不适用于跨多个节点的数据操作。必须引入分布式事务。
本地事务有ACID特性,那么分布式事务能做到吗?
CAP定理
CAP定理是由加州大学伯克利分校Eric Brewer教授提出来的,他指出WEB服务无法同时满足一下3个属性:
一致性(Consistency) : 客户端知道一系列的操作都会同时发生(生效)
可用性(Availability) : 每个操作都必须以可预期的响应结束
分区容错性(Partition tolerance) : 即使出现单个组件无法可用,操作依然可以完成
具体地讲在分布式系统中,在任何数据库设计中,一个Web应用至多只能同时支持上面的两个属性。显然,任何横向扩展策略都要依赖于数据分区。因此,设计人员必须在一致性与可用性之间做出选择。
那么如何抉择,直接影响到分布式事务的方案选择