CAP定理:

在一个分布式系统中,Consistency(数据一致性)、 Availability(服务可用性)、Partition tolerance(分区容错性),三者不可兼得。

一致性(Consistency)

在分布式系统中的所有数据备份(副本),在同一时刻数据的值是否一致。(等同于所有节点访问同一份最新的数据副本)

在分布式系统中,更新操作执行成功后所有的用户都应该读到最新的值,等同于所有节点访问同一份最新的数据副本,这样的系统被认为具有强一致性。优点: 数据一致,数据不会出错;缺点: 效率低。

不满足一致性指的是不满足强一致性,但一般都要使用一些方式(加锁),使数据具有最终一致性。

可用性(Availablity)

在集群中一部分节点故障后,集群整体是否还能响应客户端的请求(是否还可用)。

每一个操作总能在一定的时间内完成,一定时间是指完成时间可以容忍、接受,完成是指结束(不管成功、失败)。

分区容错性(Partition-torlerance)

在网络分区中,每个时刻,每个集群都要有节点能正常对外提供服务,总要有一条完整的(网络)通路。无论什么情况,服务器都要能正常被访问。

系统如果不能在时限内达成数据一致性,默认系统无故障,网络分区发生了情况,必须就当前操作在C和A之间做出选择。

定律:任何分布式系统只能同时满足二点,没法三者兼顾

最新文章

  1. 嵌入式Linux驱动学习之路(十一)按键驱动-中断机制
  2. Python 网络编程(一)
  3. Ubuntu16.04下部署golang开发环境
  4. Windows Azure虚拟机和云服务实例计费方式更新
  5. 64.GitHub 排名前100的android项目简介
  6. 编写一个函数func(),将此函数的输入参数(int型)逆序输出显示,如54321 –> 12345,要求使用递归,并且函数体代码不超过8行
  7. 第二个Sprint冲刺第五天
  8. Check if a string is NULL or EMPTY using PowerShell
  9. margin:0 auto 与 text-align:center 的区别(转载)
  10. Java泛型之<T>
  11. date,datetime,timestamp 的区别
  12. java web 中有效解决中文乱码问题-pageEncoding与charset区别, response和request的setCharacterEncoding 区别
  13. phpstorm 代码注释后,撤销某段代码的注释的,快捷键是什么?
  14. Django之Xadmin
  15. hdu5302 构造
  16. LeetCode题解之Binary Tree Tilt
  17. Ansible介绍/安装/入门
  18. linux下之mysql篇
  19. Asp.Net MVC以JSON传值扩展方法
  20. Application的作用

热门文章

  1. Java语法进阶16-Lambda-Stream-Optional
  2. Python的Excel操作及数据可视化
  3. 阿里巴巴Jetcache springboot使用教程
  4. Docker安装之路
  5. ValidationAttribute特性的截图
  6. 优雅写Java之二(数组集合流)
  7. asp获取隐藏域的json 并解析
  8. Linux下安装nvidia显卡驱动
  9. .net core3.1 下由Autofac接管IOC
  10. 深入了解 Java 中的异常处理 + 面试题