net*_*tok 3 sql database database-design nosql
CAP 定理定义取自维基百科: https: //en.wikipedia.org/wiki/CAP_theorem
分布式计算机系统不可能同时提供以下三个保证:
- 一致性(每次读取都会收到最近的写入或错误)
- 可用性(每个请求都会收到响应,但不保证它包含最新版本的信息)
- 分区容忍(尽管由于网络故障而任意分区,系统仍继续运行)
我的想法:
对于任何具有CA的系统,无需分区即可正常运行。当分区存在时,系统可以回退到CP或AP,从而可以继续运行。由于系统能够持续运行,因此也满足P。因此,任何CA系统也是CAP系统。因此,所有 CAP 不可能在一个系统中共存的说法是错误的。
C和A意味着系统在面对分区时提供了这些保证。因此,在分割期间放弃这些属性会使该属性不成立。
CA 权衡仅在分区期间相关(因为如果没有分区,我们可以放弃 P 并获得 CA)。然后,你需要做出决定。
实际相关的选择是 CP 与 AP,因为分区总是可能发生。