【一句话】CAP原则
2024-10-21 03:15:23
首先一句话:
如果出现网络分区(P),持有旧数据的节点是否要继续提供服务,提供就保证了可用(A),但数据不一定新,放弃了C;如果不提供服务,则意味着放弃了可用性A,但是保证数据一致(C)。
我的理解:
P就是网络延迟,CAP不可兼得,但是分布式系统必然会有网络延迟问题,即分布式系统必然具备P的属性。那剩下的C和A其实就是在分区发生时对分布式系统的取舍。如果注重C,则保持强一致性,如ES,需要primary分片及所有副本全部写入才可查。虽然某个副本写入失败ES也认为是一次成功的写入,不过副本分配重新启动后会处于INITIALIZING状态,从primary分片同步数据,此时放弃了A,即不对外提供查询服务,直到数据完全恢复至与主分片完全一致,才对外提供查询服务。如果注重A,即放弃强一致性,保持最终一致性,用户写入后,查询可能查询到旧数据。
以上对ES的CAP仅限于我的理解,网络上好多文章其实对ES是AP还是CP是有争议的,目前没找到一个特别通透的说法,如果你看到过,还望指点。
最新文章
- Pro HTML5 Programming(Second Edition)2.Canvas API(2)
- 别老扯什么Hadoop了,你的数据根本不够大
- 樱花漫地集于我心,蝶舞纷飞祈愿相随 训练:a preparation 训练:a preparation
- delete-by-query插件
- SQL2008全部数据导出导入两种方法【转】
- Android GC 那点事
- CentOS6.5_Nginx1.40_Php5.57_MySQL5.5.35编译安装全记录
- Xcode4快速Doxygen文档注释 — 简明图文教程
- javascript之typeof、constructor、instanceof
- 使用OpenXml实现生成数据字典文档(beta)
- poj1657---chessboard
- microsoft NLayerApp项目中的层次结构图
- StringMVC @RequestParam属性
- 【dp】P2642 双子序列最大和
- WPF PasswordBox不支持绑定解决方法
- ceph结构详解
- 基于CentOS搭建Nginx 静态网站
- SpringBoot的json序列化及时间序列化处理
- 今日头条 CEO 张一鸣:面试了 2000 个年轻人,混得好的都有这 5 种特质
- Oracle(限定查询1)