西电分布式系统考试复习

分布式系统复习要点

by Fa1con_JS

考试形式

8-10道问答题,偏重理解,优缺点评判

分布式系统定义

(20年原题,老师强调)基本定义:各个通过网络互联的独立自治的计算节点组成,这些计算节点通过消息传递的机制进行相互协作,以完成共同的目标。在普通用户角度看来,计算节点内聚在一起,是一个整体,用户在使用系统功能时,往往无法察觉到分布式系统的内部构成和节点之间的协作关系!

基本概念:多个计算节点,网络互联(异构网络互联,可无线,可有线),独立自治,相互协作以完成共同目标,消息传递模型(并非内存共享结构模型!)

**消息传递节点:出错之间是独立的,无共享架构(相互之间物理上不共享,通过计算机网络共享资源)**设计分布式计算算法需要考虑容错(各节点独立自治,网络互联),时钟同步,通信代价(数据量控制,多计算,少交互,尽量避免频繁的通信,与共享结构区分开来),分布式计算和并行计算的关系(子集关系:并行计算包括有分布式计算,分布式计算是并行计算中的一种特殊关系),分布式计算和云计算的关系(严格上说云计算是在用户上看,给用户以一种云的感觉,分布式计算是实现云计算的一个核心技术,但是云计算可以有很多别的实现方式,比如。。。云计算是目标,分布式计算是手段

构建分布式系统带来的收益

提高计算能力,提高存储能力,提高网络吞吐能力(并发访问能力),提高可靠性(解决局部节点失效问题),提高安全性(解决被局部攻击问题),提高可拓展性(解决瓶颈问题),实现资源共享,实现跨越时空的协同服务(发挥不同节点的优势)

(20年原题)Q.分布式系统的定义

A.见定义模块,这里不再赘述。

(20年原题)Q.同一个物理主机上是否可以包含多个分布式计算节点?为什么?

A:可以包含,因为可以进行虚拟化操作,一台物理设备抽象出多台虚拟设备,虚拟设备之间进行消息传递机制协作,即视为多个分布式计算节点,这些节点统称为分布式虚拟计算节点,也即虚拟节点。

(20年原题)Q.用多个计算节点构成分布式系统可以带来哪些好处?

A.主要包含以下好处:1.提高并发度,提高计算任务完成速率,因为节点变多,各个节点分到的计算任务得到平摊,各任务之间可以并行计算,同时也支持了更多用户同时访问的程度。2.提高容错性:单个节点或局部几个节点失效不会影响整体系统的完善性和正确性,用户只会感觉到系统处理速度变慢,可以通过更换计算设备来进行无缝纠错。3.提高系统可拓展性、开放性及安全性,部分节点被攻击,系统仍然可以正常工作。

(老师强调)用哪些特性衡量分布式系统的优劣

  1. 业务层性能:时间复杂度,空间复杂度,通信复杂度(交互复杂度)

    (以下为分布式特有)

  2. 可拓展性(水平可拓展性:用户增加,简单增加服务器就可以提升系统能力)(垂直可拓展性:加CPU,内存(单机系统升级)可以提升系统能力,如果单线程的设计程序,增加CPU核数不能提升系统能力)

  3. 容错性:不能因为局部服务器失效就整体失效,网络接触不良,局部错误尽量不能影响整体系统的功能(可用性,可恢复性)

  4. 并发性:单个节点可能要和多个其他端交互,多个客户端同时访问单个节点的问题

  5. 透明性:在用户看来,分布式系统应该是一个整体的功能逻辑,用户不需要知道服务器的网络拓扑结构、服务器分布和数量及存储位置等。

  6. 开放性:允许节点随时接入随时退出

  7. 安全性:局部节点被黑客攻击,分布式系统仍可正常工作

  8. 可观测性/可维护性:(可观测性)作为维护员,得知道哪一台服务器失效、负载情况等,所有服务器情况都可以被维护员管理到(可能通过一个可视化系统观测到),非常的清晰。(可维护性)替换特别方便,替换故障节点直接进行原地更换,无需通知他人,而且系统无需停机,用户感觉不到正在维护的过程

分布式系统的故障模型

  1. 节点故障模型:失效停止,失效停止重启,拜占庭模型:节点失效后(可能被黑客攻击),仍然参与工作,可能发出错误的数据包,扰乱系统的正常工作。企业内部节点:设置故障模型只需为失效停止模型即可;任何系统(联网的):容忍拜占庭模型
  2. 信道故障:传输延迟的不确定性、网络断裂、丢包、数据包乱序(TCP不考虑该问题)
  3. 时钟不同步:各个机器的时钟可能不太一样->时间戳(time-stamp)

设计分布式系统的挑战

容错能力,全局视角问题(节点染色方法,部分节点不知道自己在全局的地位,只能通过和相邻节点沟通解决冲突等)

分布式计算任务的分类

OLTP:在线(联机)事务处理系统(拿到任务请求后要迅速完成,高并发设计,实时性需求非常高)

OLAP:在线(联机)分析处理系统(允许延时长,不太强调并发性,方便数据分析)

准实时处理任务(流处理,介于OLAP和OLTP之间):(比如商品推荐系统,时效性介于两者之间,不用太快,但也不能太慢)

(19年原题,一整道大题)分布式系统架构模式

  • C-S模式:负载均衡技术(LB):如何架构(反向代理),带来的收益(性能,可拓展性提高,容错性提高:某一台设备失效,只是性能会略微下降一点),**常用负载均衡算法,要掌握每个负载策略的优劣势和具体的应用场景,例如轮询,随机负载均衡策略(优:编写简单,劣:随机负载会让缓存失效(随机访问),可能导致一些关键缓存被忽略(比如用户登录密码))**不同层级实现负载均衡(Nginx:传输层负载均衡。网络层负载均衡(IP地址改变),数据链路层负载均衡(LVS,MAC地址改变),应用层负载均衡(目标程序改变等))
  • 主从架构模式(若干从节点,一个主节点,一种C/S结构的模式)(HDFS,MapReduce,Spark等)优点:好设计,从节点宕机不会影响总体功能。由于从节点均服从主节点的调控,安全性较高。缺点:主节点容易成为瓶颈和失效关键节点,解决方式:设计主节点的备份节点
  • 总线模式:消息队列,异步通信,无主通信
  • 对等模式:运行的程序之类完全相同,又称对等互联网络技术,没有客户端或服务器的概念,只有平等的同级节点,同时对网络上的其他节点充当客户端和服务器。优点:去中心化(比特币的根本出发点),可扩展性强(用户可以随意加入随意离开),健壮稳定性,资源共享,优化传播速度,容错性高。缺点:无法确定用户传输内容的真实、无害性,可能容易受到部分用户的攻击而瘫痪失效,建立连接数太多,消息延迟大,以及消息的重复性消除问题
  • 混合模式(不算单独的,可以视为tradeoff)

(19年原题)常用的负载均衡策略及功能

  • 随机
  • 轮询
  • 固定权重值(总权重和为1)
  • (19年考具体原理)IP哈希(一致性哈希)(以上四种为静态负载均衡策略)
  • 最少TCP连接数(以下三种是考虑实际负载的均衡策略)
  • 最小响应时间
  • 基于各服务器实际负载的动态负载均衡算法(CPU,内存,磁盘IO占用情况)

主要功能:实现高并发,高可用性,以及部分安全性,同时也有伸缩性(增加或减少服务器,给用户依旧以整体的感觉)

</

  • 13
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值