分布式系统概括来讲为:
由多个相互连接的处理资源组成
计算资源可以在物理上相邻(共享主存通信)或分散(网络报文通信)
用户的视角是单一的计算机
程序可以分散到各个计算资源上运行
每个计算系统除了受到整体的操作系统控制,不存在主从控制(实际上并不容易达到)
总结来说:分布式系统将多个计算资源可跨空间的连接到一起,并形成一个整体,用户可以像用一台计算机一样来使用所有的计算资源。
分布式系统虽有很多优势,也有一些需要在使用过程中需要考虑的问题。
异构
需要考虑的问题包括网络的延迟、和不同网络的干扰;计算机硬件的指令系统,数据表示方法等;操作系统中的语法、语义,功能和文件系统;以及数据的存储方式,还有软件开发者的习惯。
开放
表示为新的计算资源被增加和多种客户程序对计算资源使用的程度。例如发布关键接口,提供统一的通信机制,可以支持异构资源使用
安全
需防止数据泄露、丢失、被干扰资源访问。例如避免有未授权的人获取到数据,数据被改变或被破坏时,有完整的数据保护系统。避免接口以及通信的干扰。
可伸缩
如果增加计算资源和用户数量较大,系统能保持稳定有效。在计算资源和用户数量没有保持平衡的情况下,要避免造成性能的损失,资源用尽,性能瓶颈的问题。
并发
在资源调度上多用户同时访问资源,可能会有并发问题。需要有一个资源调度规则和策略来避免调度冲突。
故障处理
典型的故障分为:
故障类型 说明 崩溃性故障 服务器停机,但是在停机之前工作正常 遗漏性故障 服务期不能响应到来的消息。包括不能接受、不能发送 定时故障 服务器的响应在指定时间间隔之外 响应故障 服务期的响应不正确。包括响应的值错误、偏离了正确的控制流 随意性故障 服务器可能在随意的时间产生随意的响应 解决方案通过冗余掩盖故障
- 信息冗余:添加额外的位可以监测出错误位甚至纠正。如在数据中增加checksum等。
- 时间冗余:执行一个动作,如果需要就再次执行。如事务、超时重传等。
- 物理冗余:添加额外的设备或进程使系统作为一个整体来容忍部分组件的故障。如HDFS的多备份、HA等等。
则针对各故障,可取的主要解决方案为:
- 崩溃性故障——时间冗余、物理冗余
- 遗漏性故障——物理冗余
- 定时故障——时间冗余、物理冗余
- 响应故障——信息冗余、时间冗余、物理冗余
- 随意性故障——信息冗余、时间冗余、物理冗余
引用来自
作者:猴子007
链接:https://www.jianshu.com/p/4962709bb032
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
透明性
对于用户和程序员来说,分布式系统无论是共享内存或是网络通信,都不能被简单为计算资源的集合,应是一个整体。具体透明性包括:
名字透明性:全局唯一。
访问透明性:访问本地与远程资源的方法相同。
位置透明性:不需要知道资源的位置也可以访问。
复制透明性:用户和程序员无需知道副本的信息