CAP理论:
CAP是Consistency、Avaliability、Partition tolerance(一致性、可用性、分区容忍性)
一致性:
一致性是指写操作后的读操作可以读取到最新的数据状态,也就是对于分布式系统上的任意个节点都可以读取到最新的数据状态。
可用性:
可用性是指任何事务操作都可以得到响应的结果,而不是出现响应超时或响应错误。
分区容忍性:
由于网络原因一个分布式集群A分隔成两个小的部分集群B和C,导致B和C不能互相通信,但是B和C仍可对外提供服务,这叫分区容忍性。
总结:
由于CAP只能同时满足两个,并且P是总可能发生,因为如果网络百分百没有问题不需要网络通信那必然是个单点,所以分布式集群就在一致性和可用性之间做取舍了。并且如果不是特别强调需要保持强一致性,大部分会选择保持分布式集群的高可用性,虽然某段时间不一致,但是我们想最终结果是一致的也是可以接受的。
BASE理论:
BASE是Basically Available、Soft state、Eventually consistent(基本可用、软状态、最终一致性)
基本可用:
处于完全不可用和完全可用之间,部分功能可用正常使用。
软状态:
软状态对应于硬状态,硬状态就是固定的状态,软状态只是一个临时的中间状态,待最终一致性后变成硬状态。
最终一致:
最终一致是指经过一段时间后,所有节点数据都会达到一致。
分布式事务:
跨jvm进程或跨数据库实例都会产生分布式事务。 解决分布式事务常见的有2PC,TCC,可靠消息最终一致性,最大努力通知等。