IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 从Paxos到Zookeeper笔记1——第一章:分布式架构 -> 正文阅读

[大数据]从Paxos到Zookeeper笔记1——第一章:分布式架构

第1章:分布式架构

? 将多台机器组成分布式的处理方式越来越收到业界的青睐。

1.1 从集中式到分布式

? 由于大型主机拥有卓越的性能和良好的稳定性,在单机处理方面优势非常明显。

? 但是随着计算机系统向网络化和微型化的方向发展,传统的集中式处理越来越不适应人们的需求。

大型主机的缺点:

? (1)操作难度大。

? (2)价格昂贵

? (3)虽然大型主机稳定,但是一旦出现故障后果严重

? (4)扩容非常困难

阿里提出的“去IOE”运动,让计算和存储能力出现了巨大的挑战,所以电商系统正式迈入分布式系统的时代。

1.1.1 集中式的特点

? (1)整个系统的所有业务都部署在这个中心节点上。

? (2)所有的业务集中处理

? (3)不需要考虑多个节点的协作问题

1.1.2 分布式的特点

? 分布式系统的定义: 是一个硬件或者软件组件分布在不同的网络计算机上,彼此之间仅通过消息传递进行通信和协调的系统

? 分布式系统的几大特征

? (1)分布性:

? 多台计算机随意分布,也可以随时变动

? (2)对等性:

? 计算机没有主从之分,都有的节点都是对等的。

? (3)并非性:

? 多个计算机同时操作共享的资源

? (4)缺乏全局时钟:

? 因为没有全局的时钟,很难定义两个事件谁先谁后。

? (5)故障总是发生:

? 随着机器的增加,故障也会发生的越来越多

1.1.3 分布式环境的各种问题

? 1、通信异常

? (1)由于网络的不可靠,比如会导致通信发生异常,比如消息的丢失或者消息的延迟

? 2、网络分区(脑裂)

? (1)随着节点之间的网络延迟不断加大,导致分布式系统中只有部分的节点可以正常工作,另一部分节点不能。

? (2)这个现象称为网络分区,俗称“脑裂”

? 3、三态

? (1)网络请求有“三态”概念,分别是成功、失败与超时。

? (2)集中式的系统中只有成功与失败两个状态,但是分布式系统中有超时的问题

? 4、节点故障

? (1)分布式系统中某些节点出现宕机或者死机的现象。

? (2)且随着分布式模型的增加,故障发生的频率越来越高,几乎每天都在发生。

1.2 从ACID到CAP/BASE

1.2.1 ACID

? 事务有四大特性,分别是ACID,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。

? (1)原子性

? 要么全部执行,要么全部不执行。如果执行一半出现错误,则将之前执行的全部撤回。

? (2)一致性

? 一致性是指事务不破坏数据库的完整性和一致性。

? 数据库的完整性包括实体完整性、参照完整性、用户定义完整性

? (3)隔离性

? 事务之间是相互隔离的,两个同时执行的事务之间不互相影响。

? 在SQL规范中提供了4中隔离级别,分别是①未授权读取 ② 授权读取 ③ 可重复读 ④ 串行化

? 其中严格程度从低到高,最严格的是④串行化

? 读脏数据: 不加写锁的情况下,当前事务读取已经撤销的数据

? 不可重复读:不加读锁的情况下,读取后的数据被偷偷修改。第二次读就不一样了。

? 幻读:加写锁的情况下,事务中进行两次查询,发现结果不一致。

隔离级别读脏数据可重复读幻读
未授权读取存在不可以存在
授权读取不存在不可以存在
可重复读取不存在可以存在
串行化不存在可以不存在

?

1.2.2 分布式事务

? 分布式系统在实现ACID的时候,十分的复杂

1.2.3 CAP和BASE理论

? 分布式系统无法严格地满足ACID特性。如果满足严格的ACID必然会导致分布式系统变得无法使用。

? 所以可用性和一致性是一个无法两全其美的方案。

? 基础此,学者提出了CAP和BASE的分布式系统的经典理论。

CAP定理

? CAP理论: 分布式系统无法同时满足C、A、P三个需求,最多只能同时满足两个。

? C代表一致性(Consistency)、A代表可用性(Availability)、P代表分区容错性(Partition tolerance)

(1)一致性

? 数据的多个副本保持一致的状态。

? 强一致性:如果一个数据有三个副本,那么更新信息的时候需要将三个副本的信息同时更新完成后,才算更新成功。

(2)可用性:

? 对于每个用户的请求,总是在有限的时间内返回结果。

? 有限的时间是人为设定的,如果超过这个时间就认为不可用

(3)分区容错性

? 当遇到某个分区故障时,仍然能够保证对外提供满足一致性和可用性的服务。

? 比如说有一个数据有多个副本,则一个分区故障,另外两个依然可以保证系统的正常运行。

放弃CAP的某一定理说明
放弃P放弃容错性,那么一个数据只有一个副本,意味一旦节点出错,该数据就再也找不回来了。
放弃A放弃可用性,意味着用户需要等待长时间,如果节点出错,那么用户只能等待节点恢复,则不可用
放弃C放弃一致性,意味着数据的多个副本可以不一致。

对于分布式架构中,P是最重要的,因为多个副本能保证数据一定不会丢失。这就意味着设计师需要在C和A之间寻求平衡。

BASE理论

? BASE理论是CAP理论无法满足的情况下,一种退而求其次的做法

? BASE指的是 Basically Available(基本可用)、Soft state(软状态)和Eventually consistent(最终一致性)

(1)基本可用

? 允许损失一部分的可用性。

? 比如搜索一个内容需要0.5秒返回结果,出现过在则可以增加1~2秒。

? 比如高峰期进行网上购物,那么为了稳定,可能会被引导到降级的页面。

(2)软状态

? 允许同一数据的不同副本之间有短时间内的不一致

(3)最终一致性

? 所有的数据副本,经过一段时间的同步后,最终能够达到一致性的状态。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-10 13:29:13  更:2021-08-10 13:29:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 15:58:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码