博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CAP 定理 —— 可用性 (Availability) 和分区容忍 (Partition tolerance)
阅读量:5789 次
发布时间:2019-06-18

本文共 785 字,大约阅读时间需要 2 分钟。

分布式系统现在变得越来越重要,CAP 定理描述了分布式系统的固有特性,能帮助我们更好地理解分布式系统

文章翻译自stackoverflow高赞回答,有能力的同学建议看看原文

Consistency 一致性

集群中各个结点的数据总是一致的,因此你可以向任意结点读写数据,并总是能得到相同的数据

Availability 可用性

可用性表示你总是能够访问集群,即使集群中的某个结点宕机了

Partition tolerance 分区容忍

容忍集群持续运行,即使他们中存在分区(两个分区中的结点都是好的,只是分区之间不能通信)

为了能同时达到可用性和分区容忍,你必须放弃一致性。假设你的集群中有两个结点 X 和 Y,现在他们之间网络通信中断了,因此他们不再能够同步数据,这时你可以作出如下选择:

  • 允许结点之间不同步 (保可用性,放弃一致性),或者
  • 认为集群不可用 (保一致性,放弃可用性)

CAP不能同时成立,所以会出现以下三种组合

  • Consistency & Availability:只要所有结点都在线,那么结点中的数据都是一致的。你可以向任意结点读写数据,并确信他们的数据都是相同的。但只要分区出现,数据将不再同步 (P不成立,即不能容忍分区出现)
  • Consistency & Partition tolerance:要求所有结点的数据都是一致的。容忍分区出现,但当有部分结点 down 掉后 (分区出现时集群会认为是部分结点down掉),为了避免数据不同步,集群会变成不可用
  • Availability & Partition tolerance:所有结点保持在线,即使他们之间存在分区不能相互通信,当分区问题解决后再重新同步数据。所以你不能保证所有结点的数据都是一致的 (在分区出现期间或之后)

你可以认为 CA 系统实际上不存在,因为分区问题总是会出现在分布式系统中

转载地址:http://mrmyx.baihongyu.com/

你可能感兴趣的文章
克服大数据集群的挑战
查看>>
PostgreSQL并发控制(MVCC, 事务,事务隔离级别)
查看>>
DM***的第二阶段OSPF
查看>>
20180702搭建青岛RAC记录
查看>>
Spring Security OAuth 实现OAuth 2.0 授权
查看>>
linux文件及简单命令学习
查看>>
dubbo源码分析-架构
查看>>
新 Terraform 提供商: Oracle OCI, Brightbox, RightScale
查看>>
6套毕业设计PPT模板拯救你的毕业答辩
查看>>
IT兄弟连 JavaWeb教程 JSP与Servlet的联系
查看>>
Windows phone 8 学习笔记
查看>>
linux并发连接数:Linux下高并发socket最大连接数所受的各种限制
查看>>
详解区块链中EOS的作用。
查看>>
我的友情链接
查看>>
mysql-error 1236
查看>>
sshd_config设置参数笔记
查看>>
循序渐进Docker(一)docker简介、安装及docker image管理
查看>>
jsp页面修改后浏览器中不生效
查看>>
大恶人吉日嘎拉之走火入魔闭门造车之.NET疯狂架构经验分享系列之(四)高效的后台权限判断处理...
查看>>
信号量实现进程同步
查看>>