CAP理论中的P到底是个什么意思
2024-09-27 23:29:14
在CAP理论中,C代表一致性,A代表可用性(在一定时间内,用户的请求都会得到应答),P代表分区容错。
这里分区容错到底是指数据上的多个备份还是说其它的 ? 我感觉分布式系统中,CAP理论应该是C和A存在不可同时满足, 既要保证高可用,又要保证强一致性,因为多个节点之间存在数据复制,所以要么保证强一致性,就不一定能在指定的时间内返回客户的请求, 要么保证高可用,但是各个节点的数据不一定是一致的。 但是和P有什么关系呢 ?
一个分布式系统里面,节点组成的网络本来应该是连通的。然而可能因为一些故障,使得有些节点之间不连通了,整个网络就分成了几块区域。数据就散布在了这些不连通的区域中。这就叫分区。
当你一个数据项只在一个节点中保存,那么分区出现后,和这个节点不连通的部分就访问不到这个数据了。这时分区就是无法容忍的。
提高分区容忍性的办法就是一个数据项复制到多个节点上,那么出现分区之后,这一数据项就可能分布到各个区里。容忍性就提高了。
然而,要把数据复制到多个节点,就会带来一致性的问题,就是多个节点上面的数据可能是不一致的。要保证一致,每次写操作就都要等待全部节点写成功,而这等待又会带来可用性的问题。
总的来说就是,数据存在的节点越多,分区容忍性越高,但要复制更新的数据就越多,一致性就越难保证。为了保证一致性,更新所有节点数据所需要的时间就越长,可用性就会降低。
https://www.zhihu.com/question/54105974?from=profile_question_card
最新文章
- C#之事件
- Uvaoj 10048 - Audiophobia(Floyd算法变形)
- hdu 1022 Train Problem I 解题报告
- Jquery--string
- Android IOS WebRTC 音视频开发总结(三二)-- WebRTC项目开发建议
- LA 2797 (平面直线图PLSG) Monster Trap
- 多线程编程学习四(Lock 的使用).
- 怎么用SQL语句备份和恢复数据库?
- html_javascript
- BZOJ.4653.[NOI2016]区间(线段树)
- vs2013 error LNK2005 已经在***.obj中定义
- 【struts2】Struts2的异常处理
- The superclass ";javax.servlet.http.HttpServlet"; was not found 问题解决
- What Powers Instagram: Hundreds of Instances, Dozens of Technologies(译文,转)
- CountDownLatch的简单实现
- easyui 控件获取焦点方式
- Java笔记13:统计文件中每个字符出现的次数
- n皇后问题[分支限界法]
- maven 内置属性有哪些?该如何使用?
- Java基础入门 - Hello world