分布式系统复习要点
by Fa1con_JS
考试形式
8-10道问答题,偏重理解,优缺点评判
分布式系统定义
(20年原题,老师强调)基本定义:各个通过网络互联的独立自治的计算节点组成,这些计算节点通过消息传递的机制进行相互协作,以完成共同的目标。在普通用户角度看来,计算节点内聚在一起,是一个整体,用户在使用系统功能时,往往无法察觉到分布式系统的内部构成和节点之间的协作关系!
基本概念:多个计算节点,网络互联(异构网络互联,可无线,可有线),独立自治,相互协作以完成共同目标,消息传递模型(并非内存共享结构模型!)
**消息传递节点:出错之间是独立的,无共享架构(相互之间物理上不共享,通过计算机网络共享资源)**设计分布式计算算法需要考虑容错(各节点独立自治,网络互联),时钟同步,通信代价(数据量控制,多计算,少交互,尽量避免频繁的通信,与共享结构区分开来),分布式计算和并行计算的关系(子集关系:并行计算包括有分布式计算,分布式计算是并行计算中的一种特殊关系),分布式计算和云计算的关系(严格上说云计算是在用户上看,给用户以一种云的感觉,分布式计算是实现云计算的一个核心技术,但是云计算可以有很多别的实现方式,比如。。。云计算是目标,分布式计算是手段)
构建分布式系统带来的收益
提高计算能力,提高存储能力,提高网络吞吐能力(并发访问能力),提高可靠性(解决局部节点失效问题),提高安全性(解决被局部攻击问题),提高可拓展性(解决瓶颈问题),实现资源共享,实现跨越时空的协同服务(发挥不同节点的优势)
(20年原题)Q.分布式系统的定义
A.见定义模块,这里不再赘述。
(20年原题)Q.同一个物理主机上是否可以包含多个分布式计算节点?为什么?
A:可以包含,因为可以进行虚拟化操作,一台物理设备抽象出多台虚拟设备,虚拟设备之间进行消息传递机制协作,即视为多个分布式计算节点,这些节点统称为分布式虚拟计算节点,也即虚拟节点。
(20年原题)Q.用多个计算节点构成分布式系统可以带来哪些好处?
A.主要包含以下好处:1.提高并发度,提高计算任务完成速率,因为节点变多,各个节点分到的计算任务得到平摊,各任务之间可以并行计算,同时也支持了更多用户同时访问的程度。2.提高容错性:单个节点或局部几个节点失效不会影响整体系统的完善性和正确性,用户只会感觉到系统处理速度变慢,可以通过更换计算设备来进行无缝纠错。3.提高系统可拓展性、开放性及安全性,部分节点被攻击,系统仍然可以正常工作。
(老师强调)用哪些特性衡量分布式系统的优劣
-
业务层性能:时间复杂度,空间复杂度,通信复杂度(交互复杂度)
(以下为分布式特有)
-
可拓展性(水平可拓展性:用户增加,简单增加服务器就可以提升系统能力)(垂直可拓展性:加CPU,内存(单机系统升级)可以提升系统能力,如果单线程的设计程序,增加CPU核数不能提升系统能力)
-
容错性:不能因为局部服务器失效就整体失效,网络接触不良,局部错误尽量不能影响整体系统的功能(可用性,可恢复性)
-
并发性:单个节点可能要和多个其他端交互,多个客户端同时访问单个节点的问题
-
透明性:在用户看来,分布式系统应该是一个整体的功能逻辑,用户不需要知道服务器的网络拓扑结构、服务器分布和数量及存储位置等。
-
开放性:允许节点随时接入随时退出
-
安全性:局部节点被黑客攻击,分布式系统仍可正常工作
-
可观测性/可维护性:(可观测性)作为维护员,得知道哪一台服务器失效、负载情况等,所有服务器情况都可以被维护员管理到(可能通过一个可视化系统观测到),非常的清晰。(可维护性)替换特别方便,替换故障节点直接进行原地更换,无需通知他人,而且系统无需停机,用户感觉不到正在维护的过程
分布式系统的故障模型
- 节点故障模型:失效停止,失效停止重启,拜占庭模型:节点失效后(可能被黑客攻击),仍然参与工作,可能发出错误的数据包,扰乱系统的正常工作。企业内部节点:设置故障模型只需为失效停止模型即可;任何系统(联网的):容忍拜占庭模型
- 信道故障:传输延迟的不确定性、网络断裂、丢包、数据包乱序(TCP不考虑该问题)
- 时钟不同步:各个机器的时钟可能不太一样->时间戳(time-stamp)
设计分布式系统的挑战
容错能力,全局视角问题(节点染色方法,部分节点不知道自己在全局的地位,只能通过和相邻节点沟通解决冲突等)
分布式计算任务的分类
OLTP:在线(联机)事务处理系统(拿到任务请求后要迅速完成,高并发设计,实时性需求非常高)
OLAP:在线(联机)分析处理系统(允许延时长,不太强调并发性,方便数据分析)
准实时处理任务(流处理,介于OLAP和OLTP之间):(比如商品推荐系统,时效性介于两者之间,不用太快,但也不能太慢)文章来源:https://www.toymoban.com/news/detail-479353.html
(19年原题,一整道大题)分布式系统架构模式
- C-S模式:负载均衡技术(LB):如何架构(反向代理),带来的收益(性能,可拓展性提高,容错性提高:某一台设备失效,只是性能会略微下降一点),**常用负载均衡算法,要掌握每个负载策略的优劣势和具体的应用场景,例如轮询,随机负载均衡策略(优:编写简单,劣:随机负载会让缓存失效(随机访问),可能导致一些关键缓存被忽略(比如用户登录密码))**不同层级实现负载均衡(Nginx:传输层负载均衡。网络层负载均衡(IP地址改变),数据链路层负载均衡(LVS,MAC地址改变),应用层负载均衡(目标程序改变等))
- 主从架构模式(若干从节点,一个主节点,一种C/S结构的模式)(HDFS,MapReduce,Spark等)优点:好设计,从节点宕机不会影响总体功能。由于从节点均服从主节点的调控,安全性较高。缺点:主节点容易成为瓶颈和失效关键节点,解决方式:设计主节点的备份节点
- 总线模式:消息队列,异步通信,无主通信
- 对等模式:运行的程序之类完全相同,又称对等互联网络技术,没有客户端或服务器的概念,只有平等的同级节点,同时对网络上的其他节点充当客户端和服务器。优点:去中心化(比特币的根本出发点),可扩展性强(用户可以随意加入随意离开),健壮稳定性,资源共享,优化传播速度,容错性高。缺点:无法确定用户传输内容的真实、无害性,可能容易受到部分用户的攻击而瘫痪失效,建立连接数太多,消息延迟大,以及消息的重复性消除问题?
- 混合模式(不算单独的,可以视为tradeoff)
(19年原题)常用的负载均衡策略及功能
- 随机
- 轮询
- 固定权重值(总权重和为1)
- (19年考具体原理)IP哈希(一致性哈希)(以上四种为静态负载均衡策略)
- 最少TCP连接数(以下三种是考虑实际负载的均衡策略)
- 最小响应时间
- 基于各服务器实际负载的动态负载均衡算法(CPU,内存,磁盘IO占用情况)
主要功能:实现高并发,高可用性,以及部分安全性,同时也有伸缩性(增加或减少服务器,给用户依旧以整体的感觉)文章来源地址https://www.toymoban.com/news/detail-479353.html
</
到了这里,关于西电分布式系统考试复习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!