从零开始理解分布式系统架构与设计原理(6)
从零开始理解分布式系统架构与设计原理

Elasticsearch的副本机制
在 ES 中有主分片和副本分片的概念。副本分片的主要目的就是为了故障转移,如果持有主分片的节点挂掉了,一个副本分片就会晋升为主分片的角色从而对外提供查询服务。

CAP理论
在理论计算机科学中,CAP 定理(CAP theorem),又被称作布鲁尔定理(Brewer’s theorem),它指出对于一个分布式计算系统来说,不可能同时满足分布式系统一致性、可用性和分区容错(即 CAP 中的”C”,”A”和”P”):

不念:什么是一致性、可用性和分区容错性能?
- 一致性 (Consistency)
一致性意味着所有客户端同时看到相同的数据,无论它们连接到哪个节点。
要发生这种情况,每当将数据写入一个节点时,必须立即将数据转发或复制到系统中的所有其他节点,然后才能将写入视为”成功”。
- 可用性 (Availability)
任何客户端的请求都能得到响应数据,不会出现响应错误。换句话说,可用性是站在分布式系统的角度,对访问本系统的客户的另一种承诺:我一定会给您返回数据,不会给你返回错误,但不保证数据最新,强调的是不出错。
- 分区容错
分区即分布式系统中的通信中断,两个节点之间的丢失或暂时延迟的连接。
分区容错意味着群集必须继续工作,尽管系统中的节点之间存在的通信故障。
这三种性质进行俩俩组合,可以得到下面三种情况:
- CA:完全严格的仲裁协议,例如 2PC(两阶段提交协议,第一阶段投票,第二阶段事物提交)
- CP:不完全(多数)仲裁协议,例如 Paxos、Raft
- AP:使用冲突解决的协议,例如 Dynamo、Gossip
CA 和 CP 系统设计遵循的都是强一致性理论。
不同的是 CA 系统不能容忍节点发生故障。
CP 系统能够容忍 2f+1 个节点中有 f 个节点发生失败。
Base理论

CAP 理论表明,对于一个分布式系统而言,它是无法同时满足 Consistency(强一致性)、Availability(可用性) 和 Partition tolerance(分区容忍性) 这三个条件的,最多只能满足其中两个。
在分布式环境中,我们会发现必须选择 P(分区容忍)要素,因为网络本身无法做到 100% 可靠,有可能出故障,所以分区是一个必然的现象。也就是说分区容错性是分布式系统的一个最基本要求。
CAP 定理限制了我们三者无法同时满足,但我们可以尽量让 C、A、P 都满足,这就是 BASE 定理。
BASE 理论是 Basically Available(基本可用),Soft State(软状态)和 Eventually Consistent(最终一致性)三个短语的缩写。
即使无法做到强一致性(Strong consistency),但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性(Eventual consistency)。
基本可用 (Basically Available)
基本可用是指分布式系统在出现故障的时候,允许损失部分可用性,即保证核心可用。
电商大促时,为了应对访问量激增,部分用户可能会被引导到降级页面,服务层也可能只提供降级服务,这就是损失部分可用性的体现。
软状态 ( Soft State)
什么是软状态呢?相对于原子性而言,要求多个节点的数据副本都是一致的,这是一种“硬状态”。
软状态指的是:允许系统中的数据存在中间状态,并认为该状态不影响系统的整体可用性,即允许系统在多个不同节点的数据副本存在数据延时。
最终一致性 ( Eventual Consistency)
最终一致性是指系统中的所有数据副本经过一定时间后,最终能够达到一致的状态。
弱一致性和强一致性相反,最终一致性是弱一致性的一种特殊情况。
BASE 理论面向的是大型高可用、可扩展的分布式系统。与传统 ACID 特性相反,不同于 ACID 的强一致性模型,BASE 提出通过牺牲强一致性来获得可用性,并允许数据段时间内的不一致,但是最终达到一致状态。
分布式是系统扩展的必然方向,分布式系统所遇到的问题是普遍,随着大量优秀的项目在分布式的道路上披荆斩棘,前人已经总结了大量丰富的理论。
并且不同领域的分布式系统也层出不穷,我们既应该学习好这些好的理论知识,也应该去多看看不同分布式系统的实现,总结它们的共性,发现它们在不同领域独特的亮点权衡,更重要的,我们应该将所学用于日常项目的实践当中,也应该在实践中总结出更多的规律理论。
以上就是IT袋网带来的从零开始理解分布式系统架构与设计原理的全文内容,IT袋网[www.itdai.com]希望对网友有所帮助!
相关阅读
-
ntldr is missing无法开机 ntldr is missing修复解决方法
如果想知道ntldr is missing修复解决方法的话题,关于ntldr is missing无法开机 ntldr is missing修复解决方法,继续往下看吧! ntldr is missing无法进入系统有很多原因导致,一般情况下就是系统文件丢失
-
win10控制面板里面没有语言 windows10控制面板没有语言选项怎么办
今天小编介绍windows10控制面板没有语言选项怎么办方面的讲解,关于win10控制面板里面没有语言 windows10控制面板没有语言选项怎么办,接下来就是全面介绍。 当我们在使用win10系统的时候,如
-
Linux chmod命令:详解如何给文件夹赋予权限
小编为网友们解答Linux及chmod命令方面的内容,接下来一起来看看吧。 1. 引言 在Linux操作系统中,文件和文件夹的权限管理非常重要,它可以有效地保护用户数据的安全。 本文将详细介绍如何
-
华硕vm591ur参数 华硕VM591U是否能装win11详细介绍
今天分享:华硕VM591U是否能装win11详细介绍的相关经验,关于华硕vm591ur参数 华硕VM591U是否能装win11详细介绍,一起来了解了解吧。 华硕VM591U是一款2016年推出的笔记本电脑,相对来说其配置比较


