什么是分布式事务:
简单的说,就是一个大操作由几个小操作组成,而这几个小操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么都成功,要么都失败,本质上来说,分布式事务就是为了保证不同数据库的数据一致性
分布式事务产生的原因:
1.微服务架构越来越流行,比如电商平台,被拆分成订单,商品,支付等多个模块,对应的数据库也是不同的
2.数据库水平拆分,分库分表,导致多节点数据库,同一服务多个数据库(不怎么常见,先不考虑)
cap定理:
c:一致性(Consistency):所有节点访问同一份数据,数据应该是一致的
a:可用性(Availability):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求
p:分区容错性(Partition tolerance):当出现网络分区后,系统能够继续工作
分区容错性:
区间通信可能失败,比如一台服务器在中国,一台服务器在美国,它们之间可能无法通信,系统设计的时候,必须考虑到这种情况,
也就是说分布式系统在遇到某节点或网络故障的时候,仍然能够对外提供满足一致性和可用性的服务。就是在网络中断的情况下,系统还能正常工作。
因此可以认为cap的p总是成立,cap定理告诉我们,在p总是成立的情况下,c和a无法同时满足