我知道在SO上有一个相同的问题,但是我没有发现那里的答案有帮助。
可用性表示系统将返回一个非错误响应,即使系统中的一个或多个节点关闭。
分区容忍是指即使系统中的某些节点宕机或系统中出现通信中断,系统仍能保持整体运行。
如果我没有错的话,它们都意味着即使系统中的某些节点关闭,客户端也会收到响应。两者的区别是什么?
可用性当每个发送到非节点的请求返回一个有效的响应。如果是写请求,则节点应该返回一个有效的响应,即使它不能将新的更新传递给系统中的其他节点。同样,如果是一个读请求,节点应该返回它所拥有的数据,即使它不能保证它是最近更新的数据。
分区容忍表示即使存在网络分区,即两个节点之间的连接中断,并且它们无法来回通信,系统不会停机。请注意,网络分区仅仅意味着系统中两个节点之间缺乏通信,并不意味着任何节点都不能正常工作。
在分布式系统的情况下,我们不能保证没有网络分区,因为网络连接位于我们系统的范围之外,为了确保系统继续工作,我们要么牺牲一致性,要么牺牲可用性。
可用性是指即使集群中的某个节点出现故障也能访问集群的能力。
分区容忍意味着即使存在"分区",集群也能继续运行。(两个节点之间的通信中断)(两个节点都已启动,但无法通信)
从:https://stackoverflow.com/a/12347673/6567891
在基础上,Partition分割数据是为了加快进程。但是分割的越多,分割的问题就越多。2个或更多节点
因此p表示分区根本不是分区容忍!就连我都能看到这个....它与A相反(有2个或更多副本)
但是当人们把A(复制)和p(分区)放在一起,那么PA ok(容忍分区)在这种情况下,您需要分区节点、后台复制节点和负载均衡器(可以是客户端)。