PACELC 基于 CAP 理论演进而来。

CAP 理论是一个分布式系统中老生常谈的理论了:

  • C(Consistency):一致性,所有节点在同一时间的数据完全一致。
  • A(Availability):可用性,服务一直可用。
  • P(Partition tolerance):分区容错性,遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务

系统设计中,这三点只能取其二,一般的分布式系统要求必须 有分区容错性 。剩下的只能从 C 或者 A 中取舍。

但是这个理论并不能很好地应用于实际,首先, A 中是有一定争议的,很长时间才返回,虽然可用,但是业务上可能不能接受。并且,系统大部分时间下,分区都是平稳运行的,并不会出错,在这种情况下,系统设计要均衡的其实是延迟与数据一致性的问题,为了保证数据一致性,写入与读取的延迟就会增高。这就引出了 PACELC 理论。

在出现分区错误的情况下,取前半部分 PAC,理论和 CAP 内容一致。没有出现分区错误的情况下(PACELC 中的 E 代表 Else),取 LC,也就是 Latency(延迟)与 Consistency(一致性)。

现在,其实很多存储,都已经实现了不同的 PACELC 的兼顾策略,并且交由用户配置去灵活根据不同业务场景使用不同的策略。

DynamoDB,Riak,Cassandra 的 NWR 模型

例如 DynamoDB 和 Riak 还有 Cassandra 都是 Dynamo 理论论文的基于一致性哈希写多份实现最终一致性的存储,在 默认情况下,是 P+A 以及 E+L 的系统 ,但是可以根据配置修改,主要基于 NWR模型与同步和异步备份 。N 代表 N 个备份,W 代表要写入至少 W 份才认为成功,R 表示至少读取 R 个备份。配置的时候要求 W+R > N。 因为 W+R > N, 所以 R > N-W。这个是什么意思呢?就是读取的份数一定要比总备份数减去确保写成功的倍数的差值要大。

也就是说,每次读取,都至少读取到一个最新的版本。从而不会读到一份旧数据。当我们需要高可写的环境的时候(例如,amazon 的购物车的添加请求应该是永远不被拒绝的)我们可以配置W = 1 如果N=3 那么R = 3。 这个时候只要写任何节点成功就认为成功,但是读的时候必须从所有的节点都读出数据。如果我们要求读的高效率,我们可以配置 W=N R=1。这个时候任何一个节点读成功就认为成功,但是写的时候必须写所有三个节点成功才认为成功。

大家注意,一个操作的耗时是几个并行操作中最慢一个的耗时。比如R=3的时候,实际上是向三个节点同时发了读请求,要三个节点都返回结果才能认为成功。假设某个节点的响应很慢,它就会严重拖累一个读操作的响应速度。

MongoDB

MongoDB 和上面的 Dynamo 类似,MongoDB关于一致性、可用性的权衡,取决于三者:

write-concern
read-concern
read-preference

MySQL 同步

MySQL主从复制包括异步模式、半同步模式、全同步复制

默认情况下是 异步模式 ,MySQL 一主多从部署读写分离的情况下,实现的为最终一致性,如果考虑一定延迟可以接受,一般可以通过 show slave status 来查看主从延迟从而决定数据是否可以从 slave 读取。 MyCat 等中间件就是用了这种机制。可以通过对于这个时延的容忍性,控制 L 与 C 的取舍 以及 A 与 C 的取舍。

全同步复制:指当主库执行完一个事务,所有的从库都执行了该事务才返回给客户端。这样保证了强一致性,但是响应时间变长了。

半同步复制:主库在执行完客户端提交的事务后不是立刻返回给客户端,而是等待至少一个从库接收到并写到 relay log 中才返回给客户端。这样虽然还是有延迟,但是延迟小了很多并且数据相比于异步复制更加不容易丢失。

一致性协议

一致性协议一般包括:

  • 2PC,两阶段提交
  • 3PC,三阶段提交
  • Paxos,Paxos 是很细致的一致性协议,但是一般实现过于复杂仅仅是理论
  • Raft,Raft 是能够实现分布式系统强一致性的算法,TiDB 的一致性协议就是基于 Raft
  • ZAB,Zookeeper 的一致性协议,基于 Paxos 简化
  • NWR,上面提到的 dynamo 理论基础的协议,将 PACELC 均衡交给用户

作者:干货满满张哈希

出处:https://www.cnblogs.com/zhxdick/p/14365162.html

分布式理论 PACELC 了解么?相关推荐

  1. 分布式理论(一) - CAP定理

    前言 CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性). Availability(可用性).Partition tolerance(分区容错性)这三个基本需求,最 ...

  2. 分布式理论(一)CAP 理论

    分布式理论(一) CAP理论 一.CAP理论前言 CAP原则又称为CAP理论,主要思想是在任何一个分布式系统中都无法同时满足CAP. C(Consistency):表示一致性,所有的节点同一时间看到的 ...

  3. 分布式理论、架构设计(自定义RPC)

    会不断更新!冲冲冲!跳转连接 https://blog.csdn.net/qq_35349982/category_10317485.html 分布式理论.架构设计(自定义RPC) 1.分布式架构 1 ...

  4. 分布式理论:CAP、BASE | 分布式存储与一致性哈希

    文章目录 分布式理论 CAP定理 BASE理论 分布式存储与一致性哈希 简单哈希 一致性哈希 虚拟节点 分布式理论 CAP定理 一致性(Consistency): 在分布式系统中的所有数据副本,在同一 ...

  5. 分布式理论和分布式一致性协议

    分布式理论 关键词 分布式,各副本中的数据是一致 强一致性/弱一致性(最终一致性) cap定理(P分区容错性:允许节点挂掉:对于分布式系统,是必须的) 互联网:AP (得能访问,偶尔没有一致性能接受) ...

  6. day10【过渡】分布式理论

    day10[过渡]分布式理论 划水课,参考老师的课件即可

  7. 分布式理论(六)—— Raft 算法

    分布式理论(六)-- Raft 算法 前言 我们之前讲述了 Paxos 一致性算法,虽然楼主尝试用最简单的算法来阐述,但仍然还是有点绕.楼主最初怀疑自己太笨,后来才直到,该算法的晦涩难懂不是只有我一个 ...

  8. 分布式理论(五)—— 一致性算法 Paxos

    分布式理论(五)-- 一致性算法 Paxos 前言 Paxos 算法如同我们标题大图:世界上只有一种一致性算法,就是 Paxos.出自一位 google 大神之口. 同时,Paxos 也是出名的晦涩难 ...

  9. 分布式技术与实战第一课 分布式理论与一致性算法

    开篇词:搭建分布式知识体系,挑战高薪 Offer 你好,我是邴越,在一线互联网公司从事分布式开发工作多年,一直关注分布式理论和新技术的发展. 互联网发展到今天,用户数量越来越多,产生的数据规模也越来越 ...

最新文章

  1. Leangoo思维导图管理用户故事
  2. 4G EPS 中的消息类型
  3. mybatis jdbctype数据类型_mybaits-mybatis配置
  4. 通过正则寻找符合要求的字符串
  5. CTO问:WebSocket 是啥玩意?
  6. python做图片浏览器_python操作浏览器及截图小结
  7. vs2015移植linux编译,windows平台移植(原linux项目)时,用vs2015开发,碰到的问题及处理方案记录...
  8. PureCode--iOS--自定义UITableViewCell(含疑问)
  9. 为什么古诗我们能读懂,白话诗却一头雾水呢?
  10. 千万级测试String、StringBuffer和StringBuilder的速度
  11. jni 从c传递map到java_java_jni 本地调用接口DLL的编写样本,涉及数组传递,相关的 和C程序均已包括。 Develop 256万源代码下载- www.pudn.com...
  12. 层级实时记忆(HTM)脑皮质学习算法白皮书笔记
  13. 密码忘用计算机解开,电脑密码忘了怎么办,详细教您电脑开机密码忘记了怎么解决...
  14. CV控制输出的图片大小
  15. php两个问号??表示什么意思
  16. LFS学习系列3 — 前言
  17. frp Connection refused
  18. Maven与nexus
  19. 加州大学河滨分校计算机科学专业,美国加州大学河滨分校计算机科学硕士专业申请.pdf...
  20. 基于goEasy消息推送的扫码登录

热门文章

  1. uC/OS-III-3.0-uC/OS-III简介
  2. 关于window10授时失败问题
  3. css3动画动一次就停止,css - 在最后一帧停止CSS3动画
  4. 刚刚重做系统的计算机开机时间很慢,U盘重装系统后电脑开机慢该怎么解决?解决电脑开机慢的方法...
  5. 机器人行业的信息孤岛(2020)
  6. 评选 cms_十大评选和编辑精选:一月评论
  7. 多维度积分管理系统java_某店POS积分管理系统JAVA088
  8. 基于JAVA手机电子商城计算机毕业设计源码+数据库+lw文档+系统+部署
  9. 人民日报:让中国大数据跑起来!
  10. 如何在macOS Big Sur 的Finder中使用终端锁定文件