首先一句话:

如果出现网络分区(P),持有旧数据的节点是否要继续提供服务,提供就保证了可用(A),但数据不一定新,放弃了C;如果不提供服务,则意味着放弃了可用性A,但是保证数据一致(C)。

我的理解:

P就是网络延迟,CAP不可兼得,但是分布式系统必然会有网络延迟问题,即分布式系统必然具备P的属性。那剩下的C和A其实就是在分区发生时对分布式系统的取舍。如果注重C,则保持强一致性,如ES,需要primary分片及所有副本全部写入才可查。虽然某个副本写入失败ES也认为是一次成功的写入,不过副本分配重新启动后会处于INITIALIZING状态,从primary分片同步数据,此时放弃了A,即不对外提供查询服务,直到数据完全恢复至与主分片完全一致,才对外提供查询服务。如果注重A,即放弃强一致性,保持最终一致性,用户写入后,查询可能查询到旧数据。
以上对ES的CAP仅限于我的理解,网络上好多文章其实对ES是AP还是CP是有争议的,目前没找到一个特别通透的说法,如果你看到过,还望指点。

最新文章

  1. Pro HTML5 Programming(Second Edition)2.Canvas API(2)
  2. 别老扯什么Hadoop了,你的数据根本不够大
  3. 樱花漫地集于我心,蝶舞纷飞祈愿相随 训练:a preparation 训练:a preparation
  4. delete-by-query插件
  5. SQL2008全部数据导出导入两种方法【转】
  6. Android GC 那点事
  7. CentOS6.5_Nginx1.40_Php5.57_MySQL5.5.35编译安装全记录
  8. Xcode4快速Doxygen文档注释 — 简明图文教程
  9. javascript之typeof、constructor、instanceof
  10. 使用OpenXml实现生成数据字典文档(beta)
  11. poj1657---chessboard
  12. microsoft NLayerApp项目中的层次结构图
  13. StringMVC @RequestParam属性
  14. 【dp】P2642 双子序列最大和
  15. WPF PasswordBox不支持绑定解决方法
  16. ceph结构详解
  17. 基于CentOS搭建Nginx 静态网站
  18. SpringBoot的json序列化及时间序列化处理
  19. 今日头条 CEO 张一鸣:面试了 2000 个年轻人,混得好的都有这 5 种特质
  20. Oracle(限定查询1)

热门文章

  1. vscode代码部署
  2. 万字长文!对比分析了多款存储方案,KeeWiDB最终选择自己来
  3. 1.1 大数据简介-hadoop-最全最完整的保姆级的java大数据学习资料
  4. PostgreSQL:查询元数据(表 、字段)信息、库表导入导出命令
  5. 【重难点整理】通过kafka的全过程叙述kafka的原理、特性及常见问题
  6. 乐观锁思想在JAVA中的实现——CAS
  7. PostgreSQL和MySQL的优劣对比
  8. MySQL简介、下载、密码修改及基本使用
  9. 搭建漏洞环境及实战——搭建SQL注入平台
  10. week_Last