名字服务结构——分布式计算系统原理(4)

大数据技术 潘老师 3年前 (2021-04-06) 1846 ℃ (0) 扫码查看

一、什么是实体?

实体在一个计算机系统中时指范围广泛的事物,包括计算机主机、外围设备、进程、数据库、服务、服务器和用户等。在计算机中称呼实体的方法有很多,包括名字、地址和标识符等。

分布式系统实体:

比如:主机,打印机,磁盘,文件,进程,用户,邮箱,新闻组,网络,页面等。

  • 对实体可以操作:访问点
  • 一个实体可以提供多个访问点 (多个地址)
  • 一个实体经过一定时间后可改变访问点

二、名字与属性

1、名字

实体的名字是一个用户可读的、便于记忆的字符串。例如:名字/etc/passwd 是UNIX操作系统中一个文件名,或称文件路径名。具体是指根目录“/”下的目录etc中的文件passwd。

2、地址

如果需要对实体进行操作,就要访问该实体,实体就需要一个访问点。访问点在分布式系统中是一个特殊实体,它的名字称为地址。网络中实体地址包括实体的网络层IP地址和实体的传输层TCP(或UDP)端口号。
一个实体也可有多个访问点,即多个IP地址。实体名和它的IP地址在域名服务器中需要绑定。

查找Web页面的过程:

名字服务结构——分布式计算系统原理(4)

其过程说明如下:

我们访问图中URL,web服务器域名http://www.cdk3.net经域名系统解析得到IP地址55.55.55.55,经ARP解析得到48位的Ethernet地址2:60:8c:2:b0:5a。用Ethernet地址和16位TCP端口号8888访问Web服务器,用页面名从Web服务器获取页面。最后用HTTP协议将页面传送给用户。

3、标识符

除了实体名和地址外,实体还可用内部标识符来标识。使用内部标识符可提高访问实体的效率,因为不需要再次解析过程。当客户用文件名打开一一个文件时,文件系统会向客户返回一个文件句柄,这个文件句柄便是文件的标识符,以后就可以直接用这个标识符对文件执行读或写等操作。实体标识符在系统内部应该是唯一的 ,即:
(1)一个标识符最多指向一个实体。
(2)每个实体最多由一个标识符指向。
(3)一个标识符始终指向同一个实体,标识符永远不会重复使用。

4、属性

一个实体有若干属性,一个实体用属性的<类型值>对表示。例如,打印机可能有<型号值>、<类型彩色值>属性对。如果不知道实体名,通过实体的属性也可以找到所需要的实体。例如,个用户需要-.台高分辨率的彩色打印机打印一张照片,他不知道这种打印机的名字,也不知道它在大楼中的位置。他可以将打印机的性能(属性)要求输人查询系统,系统会把所需打印机的名字、所在位置通知用户,用户就可以利用打印机打印照片。

5、绑定与上下文

在图2.1中可以看出,实体名与它的属性(地址)绑定后才能用实体名访问实体。在一个实体域中,所有实体的实体名和地址绑定的集合称为该域名字解析的上下文(Context),因此一个实体名只有在一一定的上下文中才有意义。不同的名字域,其上下文是不一样的。名字的解析是根据上下文进行的。名字域是根据地域组织或行业划定的,例如,.com是指美国的公司名字域,而.nl是指荷兰的国家名字域。
名字与其属性的绑定的集合(上下文)是用分布式数据库实现的。这种数据库与常规关系数据库的不同在于:数据库内容是用于查询,很少修改,没有事务的概念。

6、名字服务形式

根据名字服务使用的目的可以将名字服务归纳为三种类型:
1)名字服务
名字数据库是命名实体与其属性(地址)绑定的集合。名字服务是根据实体的名字查找它的属性(地址),俗称白页服务。如Internet的域名服务DNS、CORBA的命名服务。

2)目录服务
目录数据库是命名实体与其一个或多个属性绑定的集合,属性包括属性类型和一个或多个属性值。俗称黄页服务。如X.500目录服务。

3)合约服务
是一种增强的目录服务,它通过技术规范来定位一个命名实体,也称绿页服务。如Web服务。

三、名字空间

1、其他功能

名字服务一般应有以下功能和满足一定的要求。一个名字服务主要功能是名字解析,除此以外,名字服务还应有其他功能。
1)增加名字项和绑定。当一个实体进入系统,在名字服务器中应增加一个名字项及其绑定。
2) 撤消名字项和绑定。当一个实体离开系统时,在名字服务器应删除该名字项及其绑定。
3)修改名字项和绑定。当一个实体在系统移动到其它部位时,在名字服务器应修改该名字项及其绑定。
4)名字解析。这是名字服务最经常的工作,它是根据实体名查到实体的地址。

2、名字图

在名字服务的要求中已经提到名字服务要能处理巨大数量的实体名字。那么巨大数量实体名在名字服务中是如何组织的呢?曾有过两种组织形式:扁平结构分层结构。扁平结构在扩展性和名字选定方面存在很大困难,在大型系统中已经不再使用。

在分层结构中,不同层的上文不同,扩展性非常好。即使名字中有一节同名 ,也可 以解析为不同的实体,如计算机系馆张三和电子系的张三能被区分为两个不同的人一样。因此大型分布式系统的名字组织来用分层结构。

命名系统的名字集合构成该命名城的名字空间。名字空间用分层的名字图表示。下是一单个根节点的名字图。名字图是带标注的具有两类节点的有向非循环图。图中圆节点称为叶节点,方节点称为目录节点
名字服务结构——分布式计算系统原理(4)
名字服务结构——分布式计算系统原理(4)

3、挂接与挂载

上面讨论的名字空间是针对单个命名空间。名字空间也可以将外部名字空间的一部分或全部挂接到本名字空间的某个目录节点上,这个目录节点称为挂接点。外部名字空间中
被挂接的子目录树的目录节点称为子目录的输出点,或称挂载点,它是名字空间输出部分的“根”。为了从本地名字空间访问外部名字空间,本地名字空间的挂接点必须包含下列信息。
(1)访问外部名字服务器的协议名称。
(2)外部名字服务器的名称
(3)外部名字空间中输出子树的名称,即挂载点的标识符。
名字服务结构——分布式计算系统原理(4)
名字服务结构——分布式计算系统原理(4)

四、名字服务器

名字服务结构由客户端(客户与名字代理)和名字服务器通过网络互连而成。名字代理是名字服务器与客户之间的一个接口,它与名字服务器协调,生成名字解析上下文和进行名字解析,同时缓存名字查询和名字解析的结果。名字服务器管理名字解析上下文、实现名字查询与解析和其它名字服务器通信协调。名字服务结构如下:
名字服务结构——分布式计算系统原理(4)

1、服务器集中管理

这种方案易于实现便于管理。但它是一个性能瓶颈,当客户增多时名字查询和解析效率会很快降低。它也是容易形成单点故障
名字服务结构——分布式计算系统原理(4)

2、服务器分布式管理

名字服务器分担名字查询和解析负担,因此查询和解析效率会提高。避免了名字服务的单点故障,一个名字服务器失效,只是相应部分的上下文不可用。然而分布式上下文管理实现起来比较复杂。
名字服务结构——分布式计算系统原理(4)

3、服务器多副本分布式管理

名字解析上下文被划分为4个名字域,每个名字域有两个副本,分别驻留在不同的名字服务器中。例如,名字域1两个副本分别驻留在名字服务器NS1和NS4中。多副本不仅解决了名字服务的拥挤问题,还能避免名字服务的单点失效。
名字服务结构——分布式计算系统原理(4)

4、名字服务器组成

1)名字服务器操作 :管理、查询操作和行政管理。增加、删除和修改上下文的目录项。访问优先权。
2)名字解析 :根据名字解析请求,得到被解析对象地址。
3)缓存 :缓存名字查询和解析的结果。
4)多副本管理 :副本修改和副本一致性维护。
5)通信 :客户端的名字代理通信和名字服务器之间
6)数据库 :存放名字解析上下文或其子域。
名字服务结构——分布式计算系统原理(4)

五、名称解析的实现

名称解析的实现有如下2种:

  • 迭代名字解析
  • 递归名字解析

名字服务结构——分布式计算系统原理(4)
名字服务结构——分布式计算系统原理(4)
名字服务结构——分布式计算系统原理(4)
名字服务结构——分布式计算系统原理(4)
名字服务结构——分布式计算系统原理(4)


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/java/bigdata/2933.html
喜欢 (2)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】