如果只有一个域名服务器,当该服务器出现故障或遭到攻击时,整个DNS系统就会瘫痪,导致所有依赖DNS解析的网络服务无法正常工作。而分布式系统可以将域名服务器分散在不同的地理位置和网络环境中,每个域名服务器都可以处理一部分请求,减轻单个服务器的负载,并提高整个系统的可靠性。
另外,由于DNS系统需要支持全球各地的用户,并处理海量的请求,如果只有一个域名服务器,那么该服务器的负载将会非常大,导致性能下降。而分布式系统可以将请求分散到不同的服务器中,减轻单个服务器的负载,并提高整个系统的性能。
此外,DNS系统还需要支持快速的DNS缓存和更新,以确保所有的DNS查询都能够得到及时的响应。通过分布式系统,DNS缓存可以分布在各个域名服务器和DNS缓存服务器中,减轻单个服务器的压力,并提高缓存的命中率和更新效率。
综上所述,由于DNS系统需要支持全球范围的用户和海量的请求,需要具备高可靠性、高可扩展性和高性能的特点,因此采用分布式系统是非常必要和合理的选择。一般,分布式系统需要支持以下特性:
下面分别讨论。
一旦授权,可以访问环境中的任何资源。
如资源管理器控制资源的访问:
新共享资源添加并被各种客户程序使用的(难易)程度。
如支持异构资源的添加和使用:
分布系统中的各个组成部分可以在并发的过程中被执行。
如:
在资源和用户数较大增长的情况下,系统性能仍能维持甚至提高。
通常表现为:
如:
错误发生时,系统能够继续工作的能力。
要容错,就要先知道有哪些错误(故障),再针对故障类型一一解决。
分布式系统中的典型故障如下:
其中,随意性故障是最严重的故障,也被称为 拜占庭故障 。当发生故障时,服务器可能产生它从来没有产生过的输出,但是又不能检测出错误。更坏的情况是,发生故障的服务器恶意的与其他服务器共同工作来产生恶意的错误结果。
如果系统是容错的,那么它能做的最好的事情就是对其他进程隐藏故障的发生。由于故障无法避免,我们只能依靠冗余来掩盖故障,包括:
则针对各故障,可取的主要解决方案为:
网络环境对于用户和应用程序而言,应该是一个整体,而不是一个互相协作的简单的构件集合。包括多项性质:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)