- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
关于一致性
CAP原理
分布式系统中,讨论原子系统读写场景时,反复提到的CAP原理:
Consistency:(强)一致性,任意时刻所有节点上的数据保持同步,所有读写操作就是原子的、有序的
Availability:可用性,任何非故障节点必须在有限时间内对请求作出响应
tolerancetothe?Partitionofnetwork:出现网络分区、丢失任意多消息的情况下,系统仍然能工作
任何分布式系统无法同时满足CAP:
满足AP:如果在出现网络分区的情况下,还要保证可用性,则一致性C必须放弃。因为网络分区导致节点间存在无法通信的情况,为了可用性节点必须使用本地数据提供服务,则就导致了不一致
满足CP:如果在出现网络分区的情况下,还要保证一致性,那就意味着节点之间的数据同步一直阻塞,丧失可用性
满足CA:不出现网络分区的情况下,一致性、可用性可以满足
某些NoSQL数据库,为了换取基本的可用性,往往放弃强一致性,仅仅要求最终一致性,此所谓BASE理论。
何为一致性
为了防止单点故障导致数据不可用、丢失,分布式系统通常引入副本机制。保证副本的一致性,成为分布式系统的核心问题。
一致性这个术语,在计算机的不同领域对了三个英文单词:
Coherence:在多核共享内存CPU中,各核心上的缓存的数据如何保持一致
Consensus:强调多个提议者如何就某件事情达成共识,Paxos、Raft等协议解决的就是共识问题
Consistency:强调并发状态下系统暴露给客户端的行为。CAP、ACID中的C都有这个意思
强一致性为何很难满足:
消息传递异步无序(Asynchronous):现实网络不是一个可靠的信道,存在消息延时、丢失,节点间消息传递做不到同步有序
节点宕机(fail-stop):节点持续宕机,数据损坏
节点宕机恢复(fail-recover):节点宕机后恢复,数据冲突
网络分区(Networkpartition):网络链路出现问题,将N个节点隔离成多个不能相互通信的部分
拜占庭将军问题(ByzantineGeneralsProblem):节点宕机或逻辑错误,甚至不按套路出牌抛出干扰决议的信息。大多数原则
一致性模型
严格一致性
即强一致性,也叫原子一致性,可线性化(Linearizability)。严格一致性要求
任何一次读操作,都能读取到数据的最近一次写的结果
所有进程看到的操作,其顺序均一致
顺序一致性
也叫可序列化。所有进程都以相同的顺序看到所有的修改。允许进程没读到其它进程对数据的写更新,但是每个进程读到数据的不同值的顺序必须一致。
因果一致性
要求对一个数据的写操作,必然发生在,读取到此写操作结果的读操作之前。
最终一致性
这种模型从用户,而非数据的角度阐述一致性。最终一致性属于弱一致性,允许用户读取到数据的更新存在延迟,此延迟叫做不一致性窗口。
复制状态机
包括etcd、ZooKeeper、HDFS在内的分布式系统,均遵循复制状态机模型。一个分布式的复制状态机,由多个复制单元组成。每个复制单元均是一个状态机,其状态保存在一组状态变量中。这些变量(也就是状态机的状态)仅仅能通过外部命令改变。
实现中,“一组状态变量“通常基于操作日志来实现。每个复制单元均存储操作日志,并且严格按顺序逐条执行日志中的操作指令。需要注意的是,执行顺序不一定需要和指令发起顺序完全一致,只需要保证所有复制单元是同样的顺序即可。
如果复制单元的初态相同,只需要保证操作日志(在它们之间)的一致性,就可以复制状态机的整体一致性。
拜占庭将军问题
拜占庭将军们依靠信差达成进攻or撤退的共识,在已知存在不可靠成员的情况下,忠诚将军们如何排除叛徒/间谍的影响?此即拜占庭将军问题。叛徒/间谍传递的虚假消息即拜占庭错误。
在分布式系统中,拜占庭错误可以是硬件错误、网络堵塞、连接断开、遭受攻击,等等。理论上说,要容忍N个拜占庭错误,则需要至少2N+1个复制节点。因此典型的一致性协议都要求半数以上的投票才能作出决定。
ETCD
Etcd是什么
Etcd是一种分布式的键值存储,用于保存分布式系统中的关键信息。Etcd:
提供基于gRPC的面向用户的简单API
支持TLS和可选的客户端身份验证
每秒可以支持高达10000写操作
基于分布式共识算法Raft
可以用于配置管理、服务发现、机器探活
可以很轻松的实现分布式锁、选举、写屏障、事件监控、租约等分布式协同
默认情况下,Etcd使用TCP端口2379来监听客户端请求,使用TCP端口2380进行Peer之间的通信。
/etc是Unix下存放配置文件的地方,d表示分布式的意思。可以看出Etcd适用于存储非频繁更新的配置信息,而非海量数据,但是目前版本在处理100GB级别的大量数据下性能也不错。此外,
您可能关注的文档
- 读书笔记-Kubernetes权威指南:从Docker到Kubernetes实践全接触.docx
- 读书笔记-架构整洁之道.docx
- 读书笔记-《图解网络硬件》.docx
- 读书笔记-《销售圣经》.docx
- 读书笔记-《军工产品研制技术文件编写指南》.docx
- 读书笔记 -《DevOps实践指南》.pdf
- 读书笔记-《软件架构设计-大型网站技术架构与业务架构融合之道》.pdf
- 广东省清远市连山县2024-2025学年上学期期中检测七年级地理试题.pdf
- 2024-2025学年北京市通州区高二上学期期中考试物理试题(含答案).pdf
- 2024-2025学年第一学期九年级期中考试英语试卷.pdf
- 2023-2024学年广东省深圳市龙岗区高二(上)期末物理试卷(含答案).pdf
- 2023-2024学年贵州省贵阳市普通中学高一(下)期末物理试卷(含答案).pdf
- 21.《大自然的声音》课件(共45张PPT).pptx
- 2023年江西省吉安市吉安县小升初数学试卷(含答案).pdf
- 2024-2025学年广东省清远市九校联考高一(上)期中物理试卷(含答案).pdf
- 广东省珠海市六校联考2024-2025学年高二上学期11月期中考试语文试题.pdf
- 2024-2025学年语文六年级上册第4单元-单元素养测试(含答案).pdf
- 2024-2025学年重庆八中高三(上)月考物理试卷(10月份)(含答案).pdf
- 安徽省安庆市潜山市北片学校联考2024-2025学年七年级上学期期中生物学试题(含答案).pdf
- 贵州省部分校2024-2025学年九年级上学期期中联考数学试题(含答案).pdf
文档评论(0)