写点什么

架构师训练营 - 作业 - 第六周

用户头像
Max2@12
关注
发布于: 2020 年 10 月 31 日

1、请简述 CAP 原理

  • P(Partition tolerance,分区容错):即分布式应用中,即使节点间的通讯失败,也可以向我系统服务。即数据通常需要有存储在多个不同分区(或节点)的副本。

  • C(Consistency,一致性):分布式系统中,更新后的数据在多个副本之间是否总能够保持一致的特性。当以某个Key来读取分布式任意副本时,得到值的是否一致

  • A(Availability,可用性):分布式系统中,在一定时间内,可以正常处理返回用户的请求;

在分布式的环境中,一般来说,分区容错无法避免,因此可以认为 CAP 的 P 总是成立。CAP 定理告诉我们,剩下的 C 和 A 无法同时做到。因为:要把数据复制到多个节点,就会带来一致性的问题,多个节点上面的数据可能是不一致的。要保证一致,每次写操作就都要等待全部节点写成功,而这等待又会带来可用性的问题。总的来说就是,数据存在的节点越多,分区容忍性越高,但要复制更新的数据就越多,一致性就越难保证。为了保证一致性,更新所有节点数据所需要的时间就越长,可用性就会降低。

  • CA:变形成为单点服务,即不会发生分区错误了。如Oracle RAC,各实例物理存储一份,且共享数据缓冲区

  • CP:保证分布式一致性。但可能应用失败。如zookeeper

  • AP:保证可用性,可副本间数据短时间的不一致。如Eureka



用户头像

Max2@12

关注

还未添加个人签名 2018.12.13 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营 - 作业 - 第六周