一、网络分区肯定是就同一个集群而言的。对于不同集群来说, 正是因为集群间本就没有太多的交互,才需要从逻辑上分割成不同的集群,这些逻辑上不同的集群本就是可以独立对外提供服务的
一个集群的各结点部署在一个机房的不同的子网(即不同的机器上,如 195.207.9.21、195.207.9.22、195.207.9.23),不可避免的会出现由于网络问题而导致结点之间通信失败,此时仍可对外提供服务,这就叫网络分区。如果所有的节点都部署在一个机器上,是不存在通信失败的情况的,除非节点挂了。
如何解决:
尽量使用异步取代同步操作(同步操作由于网络问题经常会同步失败),例如使用异步方式将数据不同节点间的数据进行同步,这样结点之间能有效的实现松耦合。如果发生了网络分区,虽然数据是暂时不一致的,但最终结果一致的。分区容忍性分是分布式系统具备的基本能力

二、一致性:一个集群内所有节点在同一时间的数据完全一致.
一致性是指数据在多个副本之间能否保持一致的特性。在一致性的需求下,当一个系统在数据一致的状态下执行更新操作后,应该保证系统的数据仍然处于一直的状态。
对于一个将数据副本分布在不同分布式节点上的系统来说,如果对第一个节点的数据进 行了更新操作并且更新成功后,却没有使得第二个节点上的数据得到相应的更新,于是在对第二个节点的数据进行读取操作时,获取的依然是老数据(或称为脏数 据),这就是典型的分布式数据不一致的情况。在分布式系统中,如果能够做到针对一个数据项的更新操作执行成功后,所有的用户都可以读取到其最新的值,那么 这样的系统就被认为具有强一致性。
保证节点之间的数据的一致性就要做到节点之间的数据同步。
三、可用性
可用性是指系统提供的服务必须一直处于可用的状态,对于用户的每一个操作请求总是能够在有限的时间内返回结果。这里的重点是"有限时间内"和"返回结果"。
有限时间内"是指,对于用户的一个操作请求,系统必须能够在指定的时间内返回对 应的处理结果,如果超过了这个时间范围,那么系统就被认为是不可用的。另外,"有限的时间内"是指系统设计之初就设计好的运行指标,通常不同系统之间有很 大的不同,无论如何,对于用户请求,系统必须存在一个合理的响应时间,否则用户便会对系统感到失望。
"返回结果"是可用性的另一个非常重要的指标,它要求系统在完成对用户请求的处理后,返回一个正常的响应结果。正常的响应结果通常能够明确地反映出队请求的处理结果,即成功或失败,而不是一个让用户感到困惑的返回结果。
四、cap 之间的相互影响

五、分布式事务产生的场景
六、base 理论
cap 理论强调的是集群的内部可用性、一致性、分区容错性。而 base 理论则对 cap 进行了升级演化,是对 CAP 中一致性和可用性权衡的结果,它强调的是系统,系统的内部会存在着多个集群。
base 理论的三个特性:Basically Available(基本可用),Soft state(软状态),和 Eventually consistent(最终一致性)
1、基本可用呢:假设系统,出现了不可预知的故障,但还是能用,相比较正常的系统而言:
响应时间上的损失:正常情况下的搜索引擎 0.5 秒即返回给用户结果,而基本可用的搜索引擎可以在 1 秒作用返回结果。
功能上的损失:在一个电商网站上,正常情况下,用户可以顺利完成每一笔订单,但是到了大促期间,为了保护购物系统的稳定性,部分消费者可能会被引导到一个降级页面。
2、Soft state(软状态)
允许系统中的数据存在中间状态,并认为该状态不影响系统的整体可用性,即允许系统在多个不同节点的数据副本存在数据延时。
3、Eventually consistent(最终一致性)
最终一致性强调的是所有的数据副本,在经过一段时间的同步之后,最终都能够达到一个一致的状态。因此,最终一致性的本质是需要系统保证最终数据能够达到一致,而不需要实时保证系统数据的强一致性。
7、分布式事务与 base:
分布式事务在 base 理论中解决的是软状态和一致性问题,根据不同的一致性要求使用不同的解决方案。二阶段、三阶段、tcc、mq等等,有些使用的是强一致性,有些是弱一致性。