0
点赞
收藏
分享

微信扫一扫

python基础语法--函数

得一道人 2024-05-02 阅读 35

一、概述

1.1集中式系统vs分布式系统

集中式系统

伴随着大型主机时代的到来,大型主机卓越的性能和良好的稳定性,其 在单机处理能力方面的优势非常明显,使得IT 系统快速进入了集中式处理阶段

集中式系统最大的 特点 就是 部署结构简单

由于集中式系统往往基于底层性能卓越的大型主机,因此 无须考虑如何 对服务进行多个节点的部署,也就不用考虑多个节点之间的分布式协作 问题

分布式系统

与集中式系统相反,分布式系统中,多个通过网络互联的计算机都具 有一定的计算能力,他们之间通过网络互相传递数据,实现信息共享, 协作共同完成一个处理任务。

分布式系统的特性或是 优势包括容错性、高可扩展性、开放性、并发处理能力和透明性

分布式系统的关键问题

分布式系统虽然相较于集中式系统而言具备优势,但同时也存在一些不 得不考虑的问题:

1.2计算模式

并行计算

并行计算的基本思想是被求解问题分解成若干个部分,用多个处理器来 并行的求解每部分,并协同得到问题的最终解。并行计算最初强调多处理器间的并行,所有处理器或是紧耦合于中心共享内存或是松耦合于分布式内存。并行计算的实现多是在集中式的大型计算机内部基于多核 CPU、众核 GPU 等处理部件的指令级、线程级并行。 而随着网络的发展,并行计算设计也已经延伸到基于网络互连的若干独立计算机构成的集群之间的任务级并行。

技术: 时间并行(流水线)、空间并行(指令并行、线程并行

编程: MPI OpenMP CUDA

分布式计算

分布式计算的基本思想是将一个程序被分成多个部分,分布在通过 网络连接起来的多台计算机上运行。分布式系统强调的是由众多自治的计算机组成,各自拥有其私有内存,通过计算机网络通信,以消息传递 的方式完成信息交换。分布式计算的实现可以基于大型数据中心的成百 上千台服务器,甚至也可以基于分布在世界各地的服务器。分布式计算 在广义的定义上范围很广,包括网格计算、P2P 计算等。

云计算

美国国家标准技术学院(NIST ):云计算是一种模型,这个 模型可以方便地通过网络访问一个可配置的计算资源(例如 网络、服务器、存储设备、应用程序以及服务等)的公共集。 这些 资源可以被快速提供 并发布,同时 最小化管理成本 以及 服务供应商的干预

提供哪些服务?

基础设施( IaaS

平台( PaaS

软件( SaaS

1.3计算模式与大数据的关系

1.4历史发展

平台变革

基于网络的系统技术

1.5分布式和云计算系统模型

大系统被划分为4组:集群、P2P、计算网格、大数据中心之上的互联网云

协同计算集群

主要的集群设计问题

没有一个适合集群的完全资源共享的操作系统。软件环境和应用依靠 中间件来达到高性能

网格计算基础设施

网格计算 被 预想用于同时在多台远距离计算机上运行的应用间进行近距离交互

对等网络

客户端服务器体系结构。客户机( PC 和工作站)被连接到一个中央服务器, 用来进行计算、电子邮件、文件访问和数据库应用。P2P 体系结构提供了一 个分布式的网络化系统模型

P2P系统

互联网上的云计算

1.6计算模式的区别

并行计算

分布式计算

网格计算

云计算

边缘计算

算力网络

二、并行编程基础(了解)

2.1并行计算机体系结构

Flynn分类法

.并行计算机系统

2.2OpenMP

什么是 OpenMP

OpenMP指令

OpenMP指导指令

OpenMP子句

规则:

- 区分大小写;

- 指令遵循 C/C++ 编译器指令标准的约定;

- 每个指令只能指定一个指令名;

- 每个指令最多应用于一个后续语句,该语句必须是一个结构化块;

- 长指令行可以通过在指令行的末尾使用反斜杠 (“\”) 来转义换行符,

从而在后续的行中“继续

2.3MPI编程

2.4CUDA编程

 Numba

三、分布式通信

3.1通信节点

分布式系统的本质是利用多台计算机构成计算集群,每个节点的运 算结果最终需要汇集在一起才能支撑起分布式系统庞大的运算量。因此, 进程间的通信是一切分布式系统的核心。没有通信机制,分布式系统的 各个子系统将是“一盘散沙”,毫无作用

在分布式系统中, 节点是指一个可以独立按照分布式协议完成一组逻辑 的程序个体,是一个完整的、不可分的整体,是执行分布式任务的最小单元

程序往往会部署到不同的节点中,不同节点之间需要通过网络进行通信。 在具体的工程项目中,一个节点往往是操作系统上的一个进程,甚至线 程。

在分布式系统中,两个或多个进程按约定的某种协议进行 IPC ,此处协议 是指数据通信各参与进程必须遵守的一组规则。在协议中,一个进程有些时候可能是发送者,在其他时候则可能是接收者。

3.2网络基础

分布式系统可以总结为是处于不同物理位置的多个进程组成的整体,为了确保这个整体有效并且高效的对外提供服务,每个节点之间都有可能 需要进行通信来交换信息。

而交换信息需要解决两个问题,

如何定位网络上的一台或多台主机

定位后如何进行数据的传输

1)如何定位网络上的一台或多台主机

2)找到主机后如何可靠高效地进行数据传输

TCP与UDP协议

端口(重要)

Socket

Socket 的表示包括:连接协议,本地主机的 IP 地址,本地进程的协议端口, 远地主机的IP 地址,远地进程的协议端口

代码举例

相关概念

I/O 模型

Socket 封装了底层的 TCP UDP 等传输协议,建立了节点间通信的通道。 I/O模型决定了 用什么样的通道 进行输出的发送和输入的接收,很大程度 上决定了通信的性能。

阻塞与非阻塞通信

同步与异步通信

BIO

NIO

Buffer

Channel

Selector

AIO

3.3RPC概述

RPC Remote Procedure Call )是指计算机 A 上的进程,调用另外一台计 算机 B 上的进程,其中 A 上的调用进程被挂起,而 B 上的被调用进程开 始执行,当值返回给 A 时, A 进程继续执行。 调用方可以通过使用参数 将信息传送给被调用方,而后可以通过传回的结果得到信息。 而这一过

程,对于开发人员来说是透明的。

RPC 调用采用客户机 / 服务器 (C/S) 模式。请求程序就是一个客户机,而服 务提供程序就是一台服务器。和常规或本地过程调用一样,远程过程调 用是同步操作,在远程过程结果返回之前,需要暂时中止请求程序。

1 )序列化

(2)其它模块:服务发现

3.4RMI概述

RMI Remote Method Invocation 的缩写,即远程方法调用。 RMI RPC 模 型的面向对象实现,是 一种用于实现远程过程调用的应用程序编程接口 , 它使客户机上运行的程序可以调用远程服务器上的对象。

RMISocket的比较

四、分布式系统的一致性

4.1一致性的产生

.数据复制

分布式事务

分布式事务举例

4.2一致性级别

为了更好地描述客户端一致性模型,通过模拟一个应用场景来说明,这 个场景包以下组成部分。

存储系统:存储系统可以理解为一个黑盒子,他提供了可用性和持久 性的保证。

进程 A B C :三个进程相互独立,能够实现对存储系统的 wirte 和 read操作。

强一致性

保证当更新操作完成之后,任何多个后续进程或者线程的访问都会返回 最新的更新过的值。这种是对用户最友好的,就是用户上一次写什么, 下一次就保证能读到什么

在示例场景中,假如 A 写入了一个值到存储系统,存储系统保证后续 A 、 B、 C 的读取都为最新值

弱一致性

系统并不保证进程或者线程的访问都会返回最新的更新过的值。系 统在数据写入成功之后,不承诺立即可以读到最新写入的值,也不会具 体的承诺多久之后可以读到。但会尽可能保证在某个时间级别(比如秒 级别)之后,可以让数据达到一致性状态。

在示例中,假设 A 写入一个值到存储系统,存储系统不能保证后续 A B 、 C的读取操作能读取到最新值。此情况下有一个时间窗口的概念,它特指 从A 写入值,到后续操作 A B C 读取到最新值这一段时间。

最终一致性

弱一致性的特殊形式。系统保证在没有后续更新的前提下,系统最终返回上一次更新操作的值。在没有故障发生的前提下,不一致窗口的时间主要受通信延迟,系统负载和复制副本的个数影响。

假如 A 首先写了一个值到存储系统,存储系统保证如果 A B C 后续读取 之前,没有其他写操作更新同样的值的情况下,最终所有读取操作都会 读取到A 写入的最新值。 DNS 是一个典型的最终一致性系统,当更新一个 域名的ip 以后,根据配置策略以及缓存控制策略的不同,最终所有的客 户端都会看到最新的值

4.3事务一致性

ACID ,是指在数据库管理系统( DBMS )中,事务 (transaction) 所具有的四 个特性:原子性(Atomicity )、一致性( Consistency )、隔离性 (Isolation ,又称独立性)、持久性( Durability )。

原子性

一致性

隔离性

持久性

4.4CAP理论

一个分布式系统最多只能同时满足一致性( Consistency )、可用性 (Availability )和分区容错性( Partition tolerance )这三项中的两项。

一致性

可用性

.分区容错性

CAP权衡 应用

4.5BASE理论

BASE 是指基本可用( Basically Available )、软状态( Soft State )、最终 一致性( Eventual Consistency

1 基本可用(Basically Available

软状态( Soft State

最终一致性( Eventual Consistency

最终一致性是指系统中的所有数据副本经过一定时间后,最终能够达到 一致的状态。

弱一致性和强一致性相反,最终一致性是弱一致性的一种特殊情况。

4.6一致性算法

在分布式系统中,为了保证数据的高可用,通常会将数据保留多个副本 (replica),这些副本会放置在不同的物理的机器上。为了对用户提供正确 的增\ \ \ 查等语义,需要保证这些放置在不同物理机器上的副本是一 致的。

相关概念

二阶段提交

准备阶段

提交阶段

二阶段提交的缺点

三阶段提交

五、共识算法

5.1概述

  • 一致性(consistency)往往指分布式系统中多个副本对外呈现的数据 的状态。
  • 共识(consensus)则描述了分布式系统中多个节点之间,彼此对某个 状态达成一致结果的过程。

实践中,要保障系统满足不同程度的一致性,核心过程往往需要通过共 识算法来达成。

5.2拜占庭将军问题

拜占庭将军问题 (The Byzantine Generals Problem) 提供了对分布式共识问 题的一种情景化描述,由Leslie Lamport 等人在 1982 年首次发表。事实上, 拜占庭将军问题是分布式系统领域最复杂的容错模型, 它描述了 如何在 存在恶意行为( 如消息篡改或伪造 ) 的情况下使分布式系统达成共识。

拜占庭将军问题提供了对分布式共识问题的一种情景化描述,是分布式

系统领域最复杂的模型。现有的分布式共识算法主要可分为两类:

拜占庭容错算法和非拜占庭容错算法。

1. 非拜占庭容错算法

. 拜占庭容错算法

5.3Paxos算法

5.4Raft算法

六、分布式存储

6.1分布式存储的基础

概述

新一代分布式存储系统的设计目标:低成本、大规模

分布式存储系统的技术挑战包括: 数据和状态信息的持久化、数据的自动迁移、 系统的自动容错、并发读写的数据的一致性 等方面。

分布式存储面临的应用场景和数据需求都比较复杂,根据数据类型,可以将 其 分为非结构化数据、结构化数据、半结构化数据三类

结构化数据

半结构化数据

非结构化数据

分布式文件系统blob

分布式键值(Key-Value)系统

分布式表系统

HBASE

分布式数据库

. 分布式存储的历史

HDFS Google File System

6.2文件存储

单机文件系统

网络文件系统

并行文件系统

分布式文件系统

高通量文件系统

总结

6.3单机存储系统VS分布式存储系统

单机存储系统

单机存储 就是散列表、 B 树等数据结构在机械硬盘、 SSD 等持久化介质上的实现。

存储系统的 数据模型 主要包括三类: 文件 关系 以及 键值模型

分布式存储系统

6.4数据分区与复制

数据分区(分片)与数据复制是紧密联系的两个概念,对于海量数据, 通过数据分片实现系统的水平扩展 ,而通过 数据复制来保证数据的高可 用性

数据的分区

. 分区的分类

水平分区算法

复制

1.单主复制

根据系统以何种方式同步数据,又可将单主复制分为三类:同步复制, 半同步复制,异步复制。

同步复制

异步复制

半同步复制

. 多主复制

无主复制

无主复制指的是完全没有主节点,尽管无主技术在几十年前就出现了, 但直到亚马逊发布了 Dynamo 架构的论文,并在其中使用了无主复制, 才让该技术重新引起广泛关注。

七、大数据存储

7.1数据的存储介质

目前,数据有三种常见的存储模式(图3.5):直连式存储(Direct-Attached Storage,DAS);网络接入存储(Network-Attached Storage,NAS);存储区域网络(Storage Area Network,SAN)。

文件系统

文件系统是基于操作系统的,用来管理和组织保存在磁盘驱动器上的数据的系统软件,它通过对数据存储布局、空间管理、文件命名和安全控制等方面的管理,解决了如何有效地存储数据的问题,可以说通过文件系统,实现了数据的完整性,同时也实现了数据读写的简单化和安全性。

7.2分布式文件系统

Hadoop

 HDFS

HDFS缺陷

7.3数据库

关系型数据库

关系数据库的瓶颈

非关系型数据库

键值数据库

列族数据库

文档数据库

图数据库

7.4分布式数据库

分布式数据库(Distributed Database System,DDBS)是数据库技术与网络技术相结合的产物,即通过计算机网络将地理上分散的各局域节点链接起来共同组成一个逻辑上统一的数据库系统。

每个被连接起来的数据库单元称为场地(site)或节点(node)。节点或场地是指物理上或逻辑上的一台计算机(如集群系统)。节点强调的是计算机和处理能力,场地强调的是物理位置和通信代价,二者只是看问题的角度不同,本质上没有区别,

3.分布式数据库系统主要特点:

(1)物理分布性:数据不是存储在一个场地上,而是存储在计算机网络的多个场地上。

(2)逻辑整体性:数据物理分布在各个场地,但逻辑上是一个整体,它们被所有用户(全局用户)共享,并由一个DDBMS统一管理。

(3)场地自治性:各场地上的数据由本地的DBMS管理,具有自治处理能力,完成本场地的应用(局部应用)。

(4)场地之间协作性:各场地虽然具有高度的自治性,但是又相互协作构成一个整体。

7.5数据仓库

7.6云存储

举报

相关推荐

0 条评论