我爱编程首页投稿(暂停使用,暂停投稿)大数据

分布式系统的基本特性

2018-01-18  本文已影响0人  猴子007

一般,分布式系统需要支持以下特性:

下面分别讨论。

容易理解的

资源共享

一旦授权,可以访问环境中的任何资源。

资源:包括硬件(e.g. printer, scanner, camera)、软件(服务)、数据(file, database, web page) 。

如资源管理器控制资源的访问:

开放性

新共享资源添加并被各种客户程序使用的(难易)程度。

如支持异构资源的添加和使用:

并发性

分布系统中的各个组成部分可以在并发的过程中被执行。

如:

资源定义同上。

可伸缩性

主要强调“伸”;偶尔也强调“缩”。

在资源和用户数较大增长的情况下,系统性能仍能维持甚至提高。

通常表现为:

如:

image.png

不容易理解的

容错性

错误发生时,系统能够继续工作的能力。

基于这样一个假设:硬件、软件、网络的错误不可避免。

要容错,就要先知道有哪些错误(故障),再针对故障类型一一解决。

故障类型

分布式系统中的典型故障如下:

故障类型 说明
崩溃性故障 服务器停机,但是在停机之前工作正常
遗漏性故障 服务期不能响应到来的消息。包括不能接受、不能发送
定时故障 服务器的响应在指定时间间隔之外
响应故障 服务期的响应不正确。包括响应的值错误、偏离了正确的控制流
随意性故障 服务器可能在随意的时间产生随意的响应

其中,随意性故障是最严重的故障,也被称为拜占庭故障。当发生故障时,服务器可能产生它从来没有产生过的输出,但是又不能检测出错误。更坏的情况是,发生故障的服务器恶意的与其他服务器共同工作来产生恶意的错误结果。

容错方案

如果系统是容错的,那么它能做的最好的事情就是对其他进程隐藏故障的发生。由于故障无法避免,我们只能依靠冗余来掩盖故障,包括:

部分书籍将物理冗余与软件冗余分开,本质上无法完全分开,因为软件冗余可能在部署在单机或多机上。这里将二者统一为物理冗余。

则针对各故障,可取的主要解决方案为:

透明性

网络环境对于用户和应用程序而言,应该是一个整体,而不是一个互相协作的简单的构件集合。包括多项性质:

位置透明性、迁移透明性、重定位透明性是对命名系统的基本要求。


本文链接:分布式系统的基本特性
作者:猴子007
出处:https://monkeysayhi.github.io
本文基于 知识共享署名-相同方式共享 4.0 国际许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名及链接。

上一篇 下一篇

猜你喜欢

热点阅读