分布式网络构造方法、装置和系统以及任务处理方法

文档序号:7929097阅读:182来源:国知局

专利名称::分布式网络构造方法、装置和系统以及任务处理方法
技术领域
:本发明涉及通信
技术领域
,特别涉及一种分布式网络构造方法、装置和系统以及任务处理方法。
背景技术
:内容分发网络(ContentDeliveryNetwork,CDN)技术已经成为目前媒体内容分发技术的一个主要平台技术,YouTube、YouKu、56、土豆网等用户原创内容(UserGeneratedContent,UGC)业务网络的普及,吸引了大量的用户分享内容。这些业务目前主要是利用分域管理的分布式网络结构来实现的,该网络结构主要采用两种方式来实现。一种方式是,在每一个域中架构一台域管理服务器,管理域中节点的运行情况,然后再架构对这些域管理服务器进行管理的中心服务器,实现分层管理。即,网络中的分享内容通过中心服务器逐层的往下分发,使得内容放置到用户接近的域中的节点,即边缘服务器(EdgeServer,ES)上。这样,使得用户可以快速的从ES上获取需要的内容。另外一种是,通过对分布式网络中的各个节点进行性能统计,选择一些性能比较优异的节点作为超级节点,由超级节点对域中的节点进行管理,而无需中心服务器再对超级节点进行管理,这种方式由于简化了分层管理的结构,称为完全分布式网络结构。在现有的完全分布式网络结构中,由于用户对于存储内容的节点的需求存在着地域上的差别,即,用户能够在自己的接入域中的节点上进行内容的请求或者存储等操作。在这种网络结构中,全局的内容管理和各个域的节点管理,很难形成同一种分布式哈希表(DistributedHashTable,DHT)算法来进行操作。目前主要是将每个域作为一个结构化网络,其中的节点采用分布式网络结构,然后再将各个域连成一个大的全局的分布式网络结构,将每个域中节点的分布式结构通过全局的分布式网络互联。这样每个节点就需要维护两张结构化网络的表项,即域的和全局的。为了不同域中的节点可以进行通信,需要构建两种DHT算法,通过共用的中间节点,对这些域网络间的节点进行交叉管理,进而进行内外的消息交互。在现有的分布式网络结构中,一般采用的DHT算法有Chord、CAN、Pastry、KAD(KAD是kademlia的简称)等,其中KAD较其他的算法,是通过一种独特的异或算法(X0R)作为距离度量基础,建立的一种全新的DHT算法的拓扑结构,可以大大提高路由查询速度。在由KAD算法构架的KAD网络中,所有计算得到的分布式的节点都被当作一颗二叉树的叶子,并且每一个节点的位置都由KAD算法得到的节点标识(NodeID)的最短前缀唯一的确定。在KAD算法中,NodeID通常是由某个哈希(Hash)函数计算得到的,目的是为了使在分布式网络中的节点根据其NodeID均匀的分布。在这种节点分布方式中,如果节点的数量足够大,那么节点的分布会趋向于均衡。而且在此KAD算法中,一般NodeID的长度为160Bit,与内容ID的长度相同,当节点进行内容查询时,节点ID会和内容ID进行匹配,以查询所需内容。发明人在实现本发明的过程中,发现现有技术至少存在以下缺点上述的分布式网络形成过程中,无论是采用KAD算法还是其他的DHT算法,为了使得网络中的节点在理论上趋向于均匀分布,采用了128位或者160位的Hash算法计算NodeID,但是,实际上在节点的数量不是很多的时候,采用这些算法计算的NodeID进行节点分布是非常的不均匀的,容易造成节点上的负载的不均衡。再有,若要实现对现有的分布式网络的分域管理,域的分布和全局的分布采用的是不同的DHT算法,那么,某一域内的节点在与其他域中的节点进行交互的时候,需要一些中间节点作为跳板,跳到其他域中进行操作,这样可能就会产生单点效应,而且每个域中的节点都要维护和中间节点的交互消息,会使节点的开销变大;同时,由于每个节点都需要维护两张结构化网络的表项,使得某些节点维护的信息冗余,也会造成不必要的开销。还有,在KAD算法中,通常情况下,160位NodeID代表的节点都需要保留160个节点列表,如果每个节点列表中都有节点信息,并且每个节点与邻居节点之间都需要周期性的发布心跳消息来维护消息的交互,那么,每个周期,节点之间的心跳消息至少需要320
发明内容本发明目的在于提供一种分布式网络构造方法、装置和系统以及任务处理方法,实现一种节点分布更加均匀的、无交叉的完全分布式网络结构,以避免节点上的负载的不均衡、降低节点维护的冗余信息以及节点间交互的消息数量。根据本发明的一方面,提供了一种分布式网络构造方法,包括根据请求加入分布式网络的请求节点的地址,确定所述请求节点所在的域,并获取域标识;根据所述域具有的域内节点的数量,生成所述请求节点的域内标识;将所述域标识与所述域内标识级联,获得所述请求节点的节点标识;将所述节点标识发送至所述请求节点,所述请求节点根据其获得的节点标识获取邻近节点的节点信息,以加入所述分布式网络。根据本发明的另一方面,提供了一种在上述分布式网络构造方法构造的分布式网络中进行域内任务处理方法,其特征在于,包括第一节点接收任务处理请求,所述任务处理请求包括内容上传处理请求、增加或删除内容处理请求;所述第一节点判断其自身的资源性能是否满足任务处理的要求;若满足,则将所述第一节点的节点信息返回发起所述任务处理请求的第二节点,所述第二节点向所述第一节点发起操作;若不满足,则从所述第一节点的节点列表中选择资源性能满足任务处理的要求的第三节点,将所述第三节点的节点信息返回发起所述任务处理请求的第二节点,所述第二节点向所述第三节点发起操作;其中选择第三节点时,先从存储有所述第一节点所在域的域内节点信息的节点列表中选择。根据本发明的另一方面,提供了一种节点标识生成装置,包括域标识获取模块,用于根据请求加入分布式网络的请求节点的地址,确定所述请求节点所在的域,并获取域标识;域内标识生成模块,用于根据所述域具有的域内节点的数量,生成所述请求节点的域内标识;节点标识获取模块,用于将所述域标识与所述域内标识级联,获得所述请求节点的节点标识。根据本发明的另一方面,提供了一种分布式网络系统,包括请求路由服务器,用于根据请求加入分布式网络的请求节点的地址,确定所述请求节点所在的域,并获取域标识;根据所述域具有的域内节点的数量,生成所述请求节点的域内标识;并将所述域标识与所述域内标识级联,获得所述请求节点的节点标识;边缘服务器,用于根据从所述请求路由服务器获得的其所在域的域标识计算所述边缘服务器的节点标识,或从所述请求路由服务器获得由所述请求路由服务器计算所得的所述边缘服务器的节点标识;用于存储内容,所述内容具有对应的内容标识;用于查找与所述内容标识最近的一个或多个边缘服务器登记所述内容对应的内容索引信息,以及查找所述边缘服务器所要获取的内容索引信息所在的边缘服务器;还用于对其节点列表进行维护,发起对其邻近的边缘服务器的节点查询,以及对其性能进行统计、记录;内容索引服务器,用于对上传到所述分布式网络系统的内容进行添加、删除及分发的操作,登记所述内容对应的内容标识,以及接收用户或所述边缘服务器发送的查询内容请求,进行查询内容处理,并返回所要查询的内容对应的内容标识。由以上技术方案可知,本发明实施例的分布式网络构造方法、装置和系统以及任务处理方法,通过先对请求节点所在的域进行确定,然后再将计算获得的请求节点的域标识和域内标识进行级联,得到请求节点的节点标识,避免了采用现有KAD算法直接HASH得到节点的节点标识而带来的网络中的节点分布不均衡的问题,使得分布式网络中的节点分布更加均衡,节点上的负载也更加均衡,并且降低了节点维护的冗余信息以及节点间交互的消息数量。图1为本发明实施例的分布式网络的场景示意图;图2为本发明实施例的分布式网络的结构化示意图;图3为本发明分布式网络构造方法第一实施例的流程示意图;图4为本发明分布式网络构造方法第二实施例的流程示意图;图5为本发明分布式网络构造方法第二实施例的域的加入的简单示意图;图6为本发明分布式网络构造方法第三实施例的流程示意图;图7A为本发明实施例节点标识为Y的接入节点接收到FINDNODE(X)的请求的处理流程示意图;图7B为本发明实施例K桶更新方法的流程示意图;图8为本发明分布式网络构造方法第四实施例的流程示意图;图9为本发明实施例的RRS对退出节点的具体处理流程示意图;图10A为本发明分布式网络构造方法第五实施例的流程示意图;图10B为本发明实施例的内容查询方法的具体流程示意图;图10C为本发明实施例的内容索引信息迁移方法的具体流程示意图11为本发明在分布式网络中进行任务处理方法实施例的流程示意图;图12为本发明节点标识生成装置实施例的结构示意图;图13为本发明实施例的分布式网络系统中的RRS的具体结构示意图;图14为本发明实施例的分布式网络系统中的CIS的具体结构示意图;图15为本发明实施例的分布式网络系统中的ES的具体结构示意图。具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图1为本发明实施例的分布式网络的场景示意图,如图1所示为该场景下的各个网络设备。请求路由服务器(RequestRoutingServer,以下简称RRS),用于进行域的划分,比如设定要加入该分布式网络的边缘服务器(EdgeServer,以下简称ES)的地址在哪些地址段的,属于哪个域;还用于完成ES和用户节点登录的请求处理;同时也可以根据ES和用户节点的地址等标识,为其定位域。RRS还记录了该分布式网络中的域、ES和用户节点的分布情况;当一个新的域加入时,要设定新增加的域的划分条件,同时还要计算该域的域标识;同时,每一个ES或用户节点加入的时候,通过ES可以计算节点标识(NodeID)。内容索引服务器(ContentIndexServer,以下简称CIS),进行集中式的内容索引管理,负责用户关键词的模糊搜索;同时,对于该分布式网络中的内容进行管理,如,判断内容的合法性,对于不合法的,发起删除操作等;另外如果需要批量注入内容,那么可以先将内容导入到该CIS,然后,再分发给需求域上的ES。ES主要用于存储和分发内容。在本发明实施例中,每个ES以及各个用户节点均可以视为一个节点,下文中提到的节点一般是指ES。图2为本发明实施例的分布式网络的结构化示意图,如图2所示,将上述图1的分布式网络的场景采用该图2所示的借助于KAD算法的分布式网络的结构化的结构,可以形象地说明如何实现加入该分布式网络中的各个节点的均衡分布。本发明实施例介绍了构造图2所示的分布式网络的结构化结构的方法及该分布式网络中节点加入、节点退出以及节点和内容查询的应用。在图2所示的二叉树结构中,每一个黑色叶子节点表示图1所示的分布式网络中的一个ES,其他的叶子节点在该分布式网络中并不存在,只是为了逻辑上表述清楚构建的虚节点。在该二叉树结构中,每一个叶子节点所在的二叉树的位置都可以用0、1表示出来,该0、1构成的字符串作为叶子节点(ES)的NodeID的前缀。通常情况下,ES的NodeID和内容ID是长度相同的,如内容ID的长度为160位,若ES的NodeID的前缀不足160位,那么剩下的NodeID的后缀都可以用0来补足。在本发明实施例中,这棵二叉树被分成两层来分别构造。上层是一个F层的二叉树结构,表示节点所在的域,节点的F位前缀表示该节点所在域的域标识(FieldID)。节点的NodeID由所在域的FieldID和节点所在域的域内标识(PeerID)级联构成。通常情况下,NodeID和内容ID的长度相同,如取160位,那么在本发明实施例中,若设定FieldID的位数为FL位,PeerlD的位数为PL位,则FL+PL<=160,并且还需要拥有足够大的FL和PL以满足该分布式网络系的域和节点的可扩展性。下面本发明实施例将详细阐述如何确定要加入该分布式网络中的节点的NodelD、节点加入/退出该分布式网络的方法、以及用户节点在该分布式网络中如何进行内容查找/存储等应用。图3为本发明分布式网络构造方法第一实施例的流程示意图,如图3所示,当一个ES请求加入如图2所示的结构化的分布式网络时,包括如下步骤步骤301、根据请求加入分布式网络的请求节点的地址,确定该请求节点所在的域,并获取域标识;步骤302、根据该域具有的域内节点的数量,生成请求节点的域内标识;步骤303、将域标识与域内标识级联,获得请求节点的节点标识;步骤304、将节点标识发送至请求节点,请求节点根据其获得的节点标识获取邻近节点的节点信息,以加入分布式网络。上述节点标识(NodeID)的获取以及根据NodeID将请求节点加入到分布式网络中的过程可以在如图1所示场景下的RRS中实现,或者由其他可以获取NodeID的网络设备来实现。以图1所示场景下的RRS为例,RRS上记录了域的划分配置,例如划定了具有哪些IP地址的节点属于哪个域,那么步骤301中RRS就可以根据请求节点的IP地址来确定该请求节点所在的域,例如图2中的请求节点A将加入到域2,且在之前域2加入该分布式网络时,RRS也是按照域的FieldID将域均匀分布的;步骤302中,确定了请求节点A在域2后,根据域2内现分布的节点的数量(图2中为2个),通过预定算法即可生成请求节点A的PeerlD;例如域2的FieldID为OIOO,请求节点A在域2中的PeerlD为1000;那么在步骤303中,将FieldID和PeerlD级联,即可得到请求节点A的NodeID为01001000;步骤304中,根据该0、1表示的请求节点A的NodeID,即可以在图2所示的分布式网络的结构化的二叉树结构中找到A应加入的叶子节点的位置,然后请求节点A再根据其获得的节点标识获取邻近节点的节点信息,就可以加入该分布式网络。本实施例的分布式网络构造方法,通过先对请求节点所在的域进行确定,然后再将计算获得的请求节点的域标识和域内标识进行级联,得到请求节点的节点标识,避免了采用现有KAD算法直接HASH得到节点的节点标识而带来的网络中的节点分布不均衡的问题,使得分布式网络中的节点分布更加均衡,节点上的负载也更加均衡,并且降低了节点维护的冗余信息以及节点间交互的消息数量。图4为本发明分布式网络构造方法第二实施例的流程示意图,如图4所示,在请求节点请求加入分布式网络之前,该分布式网络中的RRS是要对域进行划分的,为了能够使得该分布式网络能够对其划分的域进行扩展,会对域标识的Bit位数进行预先设定,并且通过本发明实施例的域标识生成方法计算域的域标识,从而以对域进行均衡分布。获取域标识的步骤包括步骤401、RRS收到一个增加域的请求;步骤402、设定域标识的有效长度M;其中M为正整数,该有效长度M的设定要便于域的扩展;步骤403、将该分布式网络中已有的域的数量值表示为M位比特值,并根据该比特值生成域的域标识。此时,请求加入到该分布式网络中的域根据其域标识分配到二叉树结构的一个叶子节点,并且可以实现该分布式网络下的域的均匀分布。当一个请求节点请求加入该分布式网络时,包括如下步骤步骤404、RRS接收到请求节点要加入该分布式网络的请求;步骤405、RRS根据请求节点的地址信息为其指定加入的域,请求节点的地址信息如IP地址信息;如果该请求节点的IP地址不在该结构化网络划定的域的范围内,则返回节点加入失败消息至请求节点,结束;否则,执行步骤406;步骤406、设定域内标识的有效长度N;其中N为正整数,该有效长度N的设定也要便于域内的节点的扩展;步骤407、判断是否存在空闲的域内标识;若存在,则执行步骤408;否则,执行步骤409;步骤408、将空闲的域内标识赋值给请求节点,执行步骤410;步骤409、从域中获取域内节点的数量值,并将该数量值转换为对应域内标识的N位比特值,并根据该比特值生成请求节点的域内标识;步骤410、将域标识与域内标识级联,获得请求节点的节点标识;将获得的节点标识发送至请求节点,请求节点就可以根据该节点标识获取邻近节点的节点信息,以加入分布式网络。下面对域的加入和节点的加入的具体计算步骤进行说明。1)域的加入由于域的数量很难在图2所示的分布式网络的前F层构成一个完整的二叉树,所以为了均衡节点负载的均匀分布,在域的分布上也需要实现均衡。因此采用步骤402和步骤403计算域的FieldID,从而实现域的均匀分布。如图5所示,为本发明分布式网络构造方法第二实施例的域的加入的简单示意图,如图5所示,设定此域的分布为三层,则FieldID的有效长度位M=3,该域的扩展最多可以为8个域,设定此时该分布式网络中已经具有4个域,则RRS获取当前该分布式网络中的域的个数Field_Num,并将Field_Num赋值给N,即N=4;用M位的Bit数表示N,得到一个0、lBit串FID=100;倒置FID,得到FieldID=001,如图5所示的节点B;然后Field_Num加1,以备下次域的加入时,再计算FieldID。若上述步骤中得到了N=O,则认为新加入的域的FieldID=000。图5所示实例为一简单的三层域的结构,为了方便域的扩展,一般域的有效长度位M可以取IO,此时域可扩展为1024个。那么对于N=4时,得到的FID=0000000100,倒置后的FieldID=0010000000,则该域的位置在该分布式网络的第10层上。一般计算得到的NodeID中的域标识占160位的前32位,若设定域的有效长度位为10,那么后缀的22位补足O。2)节点的加入每一个新的节点加入到分布式网络中时,首先需要一个NodeID作为自己在网络中交互的标识。一请求节点加入网络时,发送一个加入分布式网络的请求,RRS根据该请求中的信息,计算该请求节点属于哪一个域,并根据该域中的节点信息,为该请求节点分配一个NodeID,上述步骤406409具体为请求节点加入到某一域内后,RRS要判断该域内的空闲的域内标识(FreePeerID)的个数FreePeerID_Num是否为O,如果不为0,则表示曾经有节点加入到该域内,但是当前该节点已经退出,而退出节点的NodeID还没有赋值给其他节点,那么可以直接将该退出节点的NodeID赋值给该请求节点使用;如果FreePeerID_Num为O,那么从该域中获取当前具有的节点数量n=Peer—Num;计算L等于[log(n)]+l,其中"[]"表示取整;用L个Bit位表示n,得PID,此时如果L=O,那么,n就用0表示;倒置PID,得PIID;用PIID集联上(PL-L)个Bit的O,得PeerID,其中PL表示该分布式网络中规定的PeerID的有效长度位,通常为128位;但是为了节省资源,如果网络在将来的扩展上一个域中的节点数量不会不超过1000个的话,那么PL的位数也可以取10。此时,步骤410中,将FieldlD和PeerlD级联,即得到NodeID=FieldID||PeerID;然后域内的节点数量Peer—Num加1,更新此时域内的节点数量值,以备后续节点加入时计算NodeID使用。其中,节点的加入时,PeerID的计算过程和FieldID的计算过程类似,在此不再具体举例。从本域中获取当前具有的节点数量n=Peer_Num的步骤可以由RRS来获取,RRS获取节点数量n=Peer_Num后,可以由RRS来计算请求节点的NodeID,也可以是请求节点获取节点数量n=Peer_Num,然后请求节点也可以计算PeerID,再级联从RRS获取的FieldID,从而得到自己的NodeID。通常为了使NodeID和内容ID的位数相等,如为160位,上述FieldID的位数取为32,PeerlD的位数取为128,此时若设定FieldID的有效长度位为10,PeerlD的有效长度位为lO,那么其余的Bit位将补足O。在本发明实施例中提出的上述FieldID和PeerlD的计算方式中均使用了预先设定有效长度位的方法,这样在下面将要提到的节点加入该分布式网络时和其他节点关联、节点退出以及内容查询与登记的应用中,只需使用FieldID和PeerlD的有效长度位进行计算即可。本实施例的分布式网络构造方法具体介绍了节点加入分布式网络时的节点标识的计算过程,可以通过先确定域的FieldID,再确定请求加入的请求节点的PeerID,然后将FieldID和PeerlD进行级联,得到请求节点的NodeID方法,使得分布式网络中的节点分布更加均衡,节点的负载也更加均衡;并且由于域的分布和全局的分布并非采用不同的DHT算法,因此也不需要中间节点,避免了单点效应。另外,在FieldID和PeerlD的具体计算过程中,还对FieldID和PeerlD各自的有效长度位进行了限定,从而使得原来对应160位的NodelD,加入到网络中的节点最多需要维护160个节点列表下降到若有效长度位为20个比特位时则最多仅需要维护20个节点列表,从而可以大大减少节点查询时的消息跳转的次数,减少系统的开销。图6为本发明分布式网络构造方法第三实施例的流程示意图。如图6所示,请求节点根据其获得的节点标识获取邻近节点的节点信息,以加入分布式网络的过程中,请求节点需要通过向其他节点发起针对其自身的节点查询以获取节点列表,即需要通过节点查询方法与该分布式网络中的各个节点建立联系。该请求节点更新了其自身的所有节点列表后,该请求节点不仅是加入了如图2所示的分布式网络中的一个虚拟位置(叶子节点),而是真正的加入了图l所示的分布式网络中。请求节点获取节点列表的步骤为步骤601、请求节点向请求节点已知的接入节点发送针对请求节点的查询请求;请求节点在加入到该分布式网络过程中,会从RRS中获取接入节点信息,或从自身原来使用过的保留的信息中获取接入节点的节点信息,接入节点信息包括接入节点的NodelD,IP地址、端口等信息,把获得的接入节点的节点信息写入到请求节点对应的节点列表中,然后请求节点会向接入节点发起查询自身的请求;步骤602、请求节点接收接入节点返回的节点标识与所述请求节点的节点标识异或距离最小的邻近节点的节点信息,节点信息中包括邻近节点的节点标识,IP地址、端口等信息;接入节点首先查询自身具有的节点列表中是否具有请求节点的节点信息,如果没有,则先将该请求节点加入到对应的节点列表中;然后再根据请求节点的NodeID查询节点标识与请求节点的节点标识异或距离最小的邻近节点,并将邻近节点的节点信息发送给请求节点;步骤603、将返回的邻近节点的节点标识与请求节点的节点标识进行匹配,根据匹配的比特位数,记录邻近节点的节点信息到请求节点的相应的节点列表中;步骤604、请求节点将邻近节点作为其再次发送针对请求节点的查询请求的接入节点,不断重复上述步骤601603,直到请求节点查询的接入节点都认为自身为最接近请求节点的节点,并将自身的节点信息返回给请求节点时,查询结束。该请求节点将所有接收到的邻近节点的节点信息记录到请求节点的节点列表中,该请求节点加入分布式网络。节点列表即为KAD算法中通常所说的K桶,在KAD算法构造的分布式网络中,每个节点都保留多个K桶,K桶的数量和NodelD的有效长度有关,即若NodelD的有效长度为20,则K桶理论上也为20个。根据节点的NodeID组成的逻辑二叉树结构中,对于任意一个节点,都可以把这颗二叉树分解为一系列连续的、不包含自己的子树;其中最高层的子树,由整颗树不包含自己的树的另一半组成,下一层子树由剩下部分不包含自己的另一半组成,依此类推,直到分割完整颗树。那么该节点的第i个K桶就记录了第i+l次划分所得子树中的节点信息。由于每一个K桶中最多存放k个节点的信息,因此每个K桶中记录的可能是划分的子树下的所有节点的节点信息,也可能是部分节点的节点信息。在本发明实施例中加入该分布式网络中的请求节点在获得NodeID后,刷新自己的所有的节点列表即K桶的方法具体为其一,获得接入节点(AES)的节点信息,并把这个节点记录到对应的K桶中;其二,向接入节点发起一次针对自己的NodeID的节点查询请求,从而通过接入节点获取一系列与自己距离邻近的其他节点的信息;最后,通过前述步骤的重复,刷新自身的所有的K桶,保证自己所获得的节点信息全部都是最新的。需要指出的是每一个节点加入系统的时候,对于请求节点首次发起节点查询(FIND_N0DE)时的接入节点的获取存在两种方式一是从RRS上登记的每个域中的接入节点的节点信息中查询本域的接入节点的节点信息,但是如果所有域中加入的节点都从RRS上登记的接入节点上进行节点查询的操作的话,会影响该接入节点的负载,所以节点一旦加入系统以后,后续可以使用查询到同一域中的其他节点作为接入节点;另外一种方式是,用户节点可以对于以前接入某一域内时使用过的节点进行保留,以供下一次该用户节点接入时利用。具体地,下面将具体介绍节点查询的一般方法,即该分布式网络中的任何一个节点均可以发起节点查询请求,例如一节点标识为Z的节点向节点标识为Y的节点发起查询节点标识为X的节点的查询请求。特别地,如果是上述提到的请求节点,其在加入该分布式网络中时,向其他节点如节点标识为Y的节点发起查询其自身的查询请求,以更新其节点列表是尤其重要的。图7A为本发明实施例节点标识为Y的接入节点接收到FIND_N0DE(X)的请求的处理流程示意图,该FIND_N0DE(X)的请求可以是节点标识为Z的节点发起的针对节点标识为X的查询请求,也可以是节点标识为X的节点发起的针对其自身的查询请求,如图7A所示,步骤如下步骤701、节点标识为Y的接入节点接收到节点标识为Z的节点发起的FIND_NODE(X)的请求;步骤702、接入节点采用K桶更新方法更新其对应的K桶,以判断其对应的K桶中是否存在节点标识为Z的节点;步骤703、从节点标识X、Y中分别取出M+N位前缀,得到标识X'、Y';其中M表示FieldID的有效长度位,即上述FL,N表示节点在域内的PeerID的有效长度位,即PL;步骤704、计算X'与Y'的异或,得到A-X'十Y';步骤705、判断A二二0是否成立,如果A为0成立,则执行步骤706;否则,执行步骤707;步骤706、节点标识Y与节点标识X相同,返回节点标识为Y的接入节点即为节点标识为Z的节点查询的节点,结束;步骤707、计算i=N+M-[log(2,A)]-l,其中"[]"表示计算所得值取整;步骤708、判断i〉二M+N是否成立,若不成立,执行步骤709;否则,执行步骤713;步骤709、判断第i个K桶是否存在,若不存在,执行步骤710;否则,执行步骤711;步骤710、i=i+l,执行步骤708;步骤711、从第i个K桶中获取与节点标识为X的节点邻近的a个节点,与节点标识为X的节点邻近的a个节点即节点的节点标识与节点标识X异或后数值最小的几个节点;步骤712、存储获取到的节点的节点信息,并累计计算当前存储的节点的数量;步骤713、判断累计存储的节点的数量是否足够所需获取的数量k,若还不足k个,则执行步骤710;否则,说明已经足够k个,则执行步骤714;步骤714、进一步判断是否获取到一定数量的节点的节点信息,若是没有获取到任何节点,则执行步骤715;否则执行步骤716;步骤715、返回节点标识为Y的节点即为距离节点标识为X的节点距离最近的节点,执行步骤717;步骤716、返回获取到的节点的节点信息;在该步骤716中,可能一直到最后一个K桶,获取到的节点的数量累计还是没有k个,此时就返回获取到的不足k个节点的信息;步骤717、节点标识为Z的节点接收到节点标识为Y的接入节点返回的邻近节点的节点信息,根据K桶更新方法将相应的节点的节点信息更新到节点标识为Z的节点对应的K桶中。图7B为本发明实施例K桶更新方法的流程示意图,步骤702采用该K桶更新算法更新接收节点对应的K桶中的关于节点标识为Z的节点的节点信息,步骤717采用该K桶更新算法将节点标识为Z的节点接收到的接收节点返回的邻近节点的节点信息更新到节点标识为Z的节点对应的K桶中。如图7B所示,以步骤702为例,该K桶更新方法的具体步骤为步骤702a、从节点标识Z、Y中分别取出M+N位前缀,得到标识Z'、Y';其中M表示FieldID的有效长度位,即上述FL,N表示节点在域内的PeerID的有效长度位,即PL;步骤702b、计算Z'与Y'的异或,得到B-z,0Y、步骤702c、计算i=N+M-[log(2,B)]-l,其中"[]"表示计算所得值取整;步骤702d、判断节点标识为Y的接入节点中第i个K桶是否存在节点标识为Z的节点的节点信息,若存在,执行步骤702e;否则执行步骤702f;步骤702e、将节点标识为Z的节点的节点信息调整到第i个K桶的尾部;K桶中记录节点的节点信息的方式为将最近活动的节点的节点信息放到K桶的尾部,结束;步骤702f、判断第i个K桶中记录的节点的数量是否小于k,一般规定K桶中可以存放k个节点的节点信息,若小于,则该K桶中记录的节点的数量不满,执行步骤702j;否则,则该K桶中记录的节点的数量为k,执行步骤702g;步骤702g、Ping操作该K桶头部的节点,Ping操作的作用是探测网络中的一个节点,用以判断其是否仍然在线;步骤702h、判断该K桶头部的节点是否响应该操作,若没有响应,执行步骤702i;否则,执行步骤702k;步骤702i、删除该K桶头部的节点的记录;步骤702j、把请求节点X的节点信息放置到该K桶的尾部,结束;步骤702k、将该K桶头部的节点调整到该K桶的尾部;步骤7021、判断是否已遍历该K桶中的所有节点,若没有,执行步骤702g;否则,执行步骤702m;步骤702m、忽略请求节点X的节点信息,结束。在步骤717将获得的若干个节点的节点信息分别更新至节点标识为Z的节点对应的K桶中后,节点标识为Z的节点再次从自己目前所有已知的距离节点标识为X的节点较近的节点中挑选出若干没有发送过FIND—NODE(X)的请求的节点作为接入节点,并向其发送该FIND_NODE(X)的请求,收到该FIND_NODE(X)的请求的接入节点重复上述如图7A中的步骤701717,再从这些接入节点上返回一些距离节点标识为X的节点近的节点的节点信息;不断重复上述步骤,直至接入节点都认为自身为最接近节点标识为X的节点或者自身就是所要查询的节点,并将自身的节点信息返回给节点标识为Z的节点。在上述查询过程中,没有及时响应节点标识为Z的节点的节点将立即被排除,以便保证请求节点X最终获得的最近的节点都是活动的。本实施例提供的分布式网络构造方法中,具体介绍了节点查询的方法,该节点查询的方法在请求节点获取了其节点标识,要加入到该分布式网络中时尤其重要。例如节点标识为Z的节点为节点标识为X的请求节点,该请求节点采用上述步骤701717的节点查询的方法找到与其自身的节点标识X距离较近的节点的节点信息,并将这些节点的节点信息添加到请求节点对应的节点列表(即K桶),那么至此,将加入到该分布式网络中的请求节点与该分布式网络中的其他节点关联在了一起。图8为本发明分布式网络构造方法第四实施例的流程示意图,如图8所示,在上述实施例中,请求节点添加了节点列表后,即和与其邻近的节点建立了相互的关联关系。在该分布式网络中,若出现其他的一些节点接收不到已相互关联的某一节点的响应消息的情况时,即该某一节点可能已经退出该分布式网络的情况下,该分布式网络管理该可能退出的节点及其节点信息的具体流程为步骤801、RRS接收该分布式网络中的一个或多个节点发送的针对退出节点的处理请求;在该分布式网络中,各个节点之间的交互是完全分布式的,且每一个节点的NodeID是按照本发明实施例的算法分配的;因此,当有一个节点退出该网络以后,其他节点可以通过周期性的心跳消息,了解到其邻近节点的状况。假设现该分布式网络中存在一个退出节点,由于原来有很多其他节点对该退出节点拥有节点信息,因此会周期性的发送心跳消息,以与该退出节点保持联系。当有一些节点发现其发送的心跳消息没有响应的时候,则认为该退出节点是失效的,就会向RRS汇报,请求处理该退出节点;步骤802、RRS查看其本地保存的失效节点列表,并对该退出节点做出是否失效的判定处理;该判定处理包括如下两种情况若失效节点列表中不存在该退出节点的节点信息,则在失效节点列表中创建该退出节点;并判断退出节点是否失效,若是,则将退出节点的节点标识写入退出节点所在域的空闲域内标识列表中,已备该域内加入新的节点时将该节点标识赋予新的节点。若失效节点列表中存在该退出节点的节点信息,并且退出节点没有被判断过是否失效,则判断退出节点是否失效;若是,则将退出节点的节点标识写入退出节点所在域的空闲域内标识列表中,已备该域内加入新的节点时将该节点标识赋予新的节点。失效节点列表的数据结构如下<table>tableseeoriginaldocumentpage16</column></row><table>其中,NodelD、IP—Addr、IP—Port分别表示失效节点的NodelD、IP地址和IP端口;R印ort—Num表示汇报该退出节点失效的节点的总数量,设定RN为该R印ort—Num的一个临界数值点,如果R印ort—Num大于或等于RN,则RRS探测该退出节点是否真的失效;Flag表示该退出节点是否已经经过了失效处理;Time表示创建该退出节点记录的时间。RRS在失效节点列表中查询是否存在其他节点请求处理的退出节点时候,需要NodeID、IP地址、IP端口均匹配,才认为是查询成功,该失效节点列表中存在退出节点的节点信息。图9为本发明实施例的RRS对退出节点的具体处理流程示意图,如图9所示,为步骤901、RRS接收其他节点发送的对某个节点,此处称作退出节点失效的处理请求;步骤902、RRS查看本地的失效节点列表;该失效节点列表的数据结构如上所示;步骤903、判断该退出节点是否已被记录在该失效节点列表中,如果没有记录,则执行步骤904;否则执行步骤905;步骤904、在本地的失效节点列表中创建该退出节点的记录,并初始化其中的汇报总数量、记录时间等信息,然后执行步骤906;步骤905、判断Flag是否为真,即已被记录的该退出节点是否已经进行过失效处理,如果为真,即该退出节点已经进行过失效处理,结束;否则执行步骤906;步骤906、R印ort—Num加1。即表示又有一个节点汇报请求处理该退出节点;步骤907、判断R印ort—Num是否大于或者等于RN,如果R印ort—Num小于RN,那么结束;否则执行步骤908;步骤908、RRS向该退出节点发起信息的探测,判断该退出节点是否掉线;如没有掉线,执行步骤909;否则执行步骤910;步骤909、删除失效节点列表中的该退出节点的记录,并结束;步骤910、把该退出节点的NodeID写入到对应的该域中的空闲域内标识列表FreePeerlD—List中;步骤911、设定Flag=Ture,结束。在该RRS对退出节点进行管理的流程中,RRS还要通过周期性的扫描失效节点列表来管理该列表上记录的节点信息,判断该失效节点列表上记录的节点信息是否过期,并将过期的节点记录删除。例如可设定大于两个扫描周期没有对节点信息进行更新的对应节点即为过期节点,将该节点的节点信息删除。本实施例主要描述了对于分布式网络上的节点要退出的管理流程,进一步完善了该分布式网络的构造方法。图10A为本发明分布式网络构造方法第五实施例的流程示意图。在该分布式网络中,每个ES上管理的内容都有其对应的内容标识(内容ID),ES将其管理的内容的相关信息及内容ID在图l所示的网络中的CIS上进行登记,并将内容索引信息保存在NodeID与内容ID距离最小的NodeID对应的一个或几个节点上,这样保存有内容ID的节点管理的内容索引信息指示了该内容索引信息对应的内容存储在的ES,以便查找到内容ID就可以获知内容索引信息以及内容索引信息对应的内容存储在哪个ES上。这样当某一节点或者用户节点发起对某一内容的查询时,该节点首先会在图1所示的网络中的CIS上进行内容的搜索,获取对应内容的一个内容ID,此时某一节点或者用户节点会根据其获知的内容ID发起查询,找到管理该内容ID的节点,从中得到内容索引信息,即获得了保存了对应内容的ES。将某一节点或者用户节点定义为内容查询请求节点,其查询与内容ID距离最近的NodeID所对应的节点的过程,类似于节点查询的过程,如图IOA所示,包括如下步骤步骤1001、内容查询请求节点从其节点列表中找出节点标识与要查询的内容对应的内容ID距离最小的节点作为第一查询节点,并向第一查询节点发送针对内容ID的查询请求;步骤1002、若在第一查询节点的节点列表中没有找到距离比第一查询节点的节点标识与内容ID距离更小的节点,则将该第一查询节点的节点信息返回给内容查询请求节点;步骤1003、若在第一查询节点的节点列表中找到距离比第一查询节点的节点标识与内容ID距离更小的第二查询节点,则将第二查询节点的节点信息返回给内容查询请求节点;步骤1004、内容查询请求节点向返回的节点发送查询内容ID的请求,若该节点上管理有对应的内容索引信息,则返回内容索引信息到内容查询请求节点;否则,在该节点上继续查找节点标识与内容标识距离最小的节点以查询内容索引信息,查询的步骤同步骤1001步骤1003。具体地,在现有的分布式网络中,假设存在n个域,各个域也都具有随机得到的位数为M位的FieldID,记为F(l)<F(2)<F(3)<...<F(n)。但是这些域的分布并不均匀,且FieldID的比特值不连续,即F(i+l)!二F(i)+l,甚至有可能两个域,例如域i和域i+l的FieldID的比特值相差很大,即两个域距离很远。那么,该分布式网络中所有M位前缀的比特值在域i和域i+l的FieldID的比特值之间的内容ID所对应的内容的索引信息都会上传到域i中的NodeID最大的节点上进行管理,这样会造成此节点的负载过大。本发明实施例的内容ID查询的方法会进一步对确定加入域i中的内容ID进行再次匹配,即根据内容ID的FieldID的有效长度位M后的域内标识有效长度位N的前缀查找在该域i内的邻近节点,从而可以实现将加入到该域i内的内容ID均匀地分布到该域i内的各个节点上,从而减轻域i中的NodeID最大的节点上的负载。图IOB为本发明实施例的内容查询方法的具体流程示意图,如图IOB所示,包括如下步骤步骤1005、NodelD为Y的查询节点接收到内容查询请求节点的针对内容ID为XI的查询请求;步骤1006、判断该查询节点上是否记录有内容查询请求节点所要查询的内容ID,若存在该记录,执行步骤1007;否则,执行步骤1008;步骤1007、返回该查询节点的节点信息,该NodelD为Y的查询节点作为与内容ID最接近的节点,结束查询;步骤1008、从标识XI、Y中分别取出M位前缀,得到标识XI'、Y';其中M表示FieldID的有效长度位,即上述FL;步骤1009、计算X1'与Y'的异或,得到A-X1'0Y';步骤1010、判断A==0是否成立,如果A为0成立,则执行步骤1015;否则,执行步骤1011;步骤1011、计算i=M-[log(2,A)]-1,其中"[]"表示计算所得值取整;步骤1012、判断查询节点中第i个K桶是否存在,如果不存在,则执行步骤1013;否则,执行步骤1022;步骤1013、i=i+l;步骤1014、判断i〉二M是否成立,若不成立,执行步骤1012;否则,执行步骤1015;步骤1015、从标识XI、Y中分别取出M位后的N位前缀,得到标识Xl"、Y";其中N表示节点在域内的PeerID的有效长度位,即PL;步骤1Q16、计算XI"与Y"的异或,得到B-X1,,①Y',;步骤1017、计算i=N-[log(2,B)]-l,其中"[]"表示计算所得值取整;步骤1018、判断查询节点中第i+M个K桶是否存在,如果不存在,则执行步骤1019;否则,执行步骤1022;步骤1019、i=i+l;步骤1020、判断i>=N是否成立,若不成立,执行步骤1018;否则,执行步骤1021;步骤1021、返回该查询节点的节点信息,该NodeID为Y的查询节点作为与内容ID最接近的节点,结束查询;步骤1022、返回从第i个K桶中选择的NodeID与内容ID距离最小的节点,结束查询。为了将ES上保存的内容对应的内容ID在最接近内容ID的节点上进行登记而进行的针对内容ID的节点查询的过程同上述图IOA和图IOB所描述的节点查询过程。不同的是,上述内容ID查询过程为查询到最接近的节点后,从节点上获取内容ID,而内容ID登记过程为查询到最接近的节点后,将内容ID登记到该节点上。另外,如果在域i和域i+l之间又添加一新的域t,即第一域t,并且该域t中加入了一个节点m,即第一节点m。若第一域t中仅有第一节点m,则第一节点m查找到FieldID与第一域t的FieldID距离最小的第二域中的所有节点,在本实施例中即找到域i中的所有节点,获取记录在第二域i中的所有节点上的内容ID的M位的前缀大于等于第一域t的FieldID的内容索引信息;若第一域t中还有其他节点,则第一节点m查找到NodeID与第一节点m的NodeID距离最小的第二节点n,获取记录在第二节点n上的内容ID的M位后的N位前缀大于等于第一节点m的PeerID的内容索引信息。具体地,图IOC为本发明实施例的内容索引信息迁移方法的具体流程示意图,如图IOC所示,包括如下步骤1023、第一节点m判断其是否为第一域t中的唯一节点,若是,执行步骤1024;否则,执行步骤1026;步骤1024、第一节点m发送内容索引信息迁移请求,查找FieldID与第一域t的FieldID距离最小的第二域;步骤1025、从第二域中的所有节点中获取内容ID的M位前缀大于等于第一域t的FieldID的内容索引信息,执行步骤1030;步骤1026、第一节点m发送内容索引信息迁移请求,从第一域t中查找NodeID与第一节点m的NodeID距离最小的第二节点;步骤1027、判断第二节点的NodeID是否大于第一节点m的NodeID,若大于,执行步骤1028;否则,执行步骤1029;步骤1028、从第二节点中获取内容ID的紧跟M位后的N位比特大于等于第一节点的PeerID且小于第一节点的PeerID的内容索引信息,执行步骤1030;步骤1029、从第二节点中获取内容ID的紧跟M位后的N位比特大于等于第一节点的PeerID的内容索引信息;步骤1030、将获取到的内容索引信息迁移到第一节点m上。本实施例提供的分布式网络构造方法,主要描述了在该分布式网络构造中进行特定内容ID的搜索、登记方法,其实质上也是针对节点的查找。图11为本发明在分布式网络中进行任务处理方法实施例的流程示意图。用户节点或者ES会在某个时刻存在任务处理的请求,比如说,用户上传存储内容;节点由于本地负载太重,需要迁移内容;或者本域中需要增加或者删除一些副本等等,这些请求都需要指定一些节点来处理,而且这些节点的资源是能够满足这些请求的处理需求的资源。所以,在为节点分配任务的时候,需要统计节点的性能,使得在任务处理被操作前可以找到满足资源性能需求的节点,从而可以实现节点的负载平衡。如图ll所示,在本发明实施例上述介绍的构造分布式网络的方法下,可以更快速高效的在本域中进行任务处理的操作,具体的流程如下步骤1101、第一节点接收任务处理请求,任务处理请求包括内容上传处理请求、增加或删除内容处理请求;步骤1102、第一节点判断其自身的资源性能是否满足任务处理的要求;步骤1103、若满足,则将第一节点的节点信息返回发起任务处理请求的第二节点,第二节点向第一节点发起操作;步骤1104、若不满足,则从第一节点的节点列表中选择资源性能满足任务处理的要求的第三节点,将第三节点的节点信息返回发起任务处理请求的第二节点,第二节点向第三节点发起操作;其中第一节点优先选择K桶标识表示大于等于M的节点列表中的节点(即为同一域内的节点)。例如一用户节点要上传内容,在发送上传内容请求前需要知道把内容上传到哪个节点,其处理步骤具体如下步骤a、用户节点向其接入节点(即AES)发送关于上传内容的处理请求;步骤b、AES检测本身是否拥有足够的资源满足内容上传的要求,若满足,执行步骤C;否则执行步骤d;步骤c、将AES的信息返回给用户节点,然后用户节点进行上传内容的操作;步骤d、从AES的K桶中选择标识大于或者等于M的K桶,从第i个K桶开始,依次从各个K桶中选择n(n〉二1)个节点,请求各个节点反馈资源利用的情况;如果第i个K桶中的n个节点反馈的信息都不能满足用户节点上传内容的要求,那么就从第(i+l)%(M+N)个K桶中再找出n个节点,依次进行统计,直到找到满足用户节点上传内容请求处理的节点为止;如果不存在,那么就返回请求失败信息。步骤e、AES把满足用户节点上传内容请求的节点返回给用户节点;步骤f、用户节点向可以满足用户节点上传内容请求的节点发起操作请求。在这里,用户节点也可以为一任意的ES,那么此时,由于ES本身就可以当做AES来进行节点查询等操作,因此此时的AES也为ES本身。本实施例提供的采用上述分布式网络构造方法构造的分布式网络进行任务处理的方法,由于是基于上述分域构造的分布式网络,因此在进行本域内的任务处理时可以很快的从本域内的节点中选择合适的节点以处理任务请求。图12为本发明节点标识生成装置实施例的结构示意图,如图12所示,该节点标识生成装置包括域标识获取模块121、域内标识生成模块122和节点标识获取模块123。其中域标识获取模块121可以用于根据请求加入分布式网络的请求节点的地址,确定所述请求节点所在的域,并获取域标识;域内标识生成模块122要根据该域具有的域内节点的数量,生成该请求节点的域内标识;节点标识获取模块123将域标识与域内标识级联,获得请求节点的节点标识。其中域标识获取模块121还可以具体包括设定域标识的有效长度M的第一设置模块1211,其中M为正整数,以及将该分布式网络中已有域的数量值表示为M位比特值,并根据该比特值生成该域的域标识的第一计算模块1212。域内标识生成模块122还可以具体包括设定域内标识的有效长度N的第二设置模块1221,其中N为正整数,判断是否存在空闲的域内标识的判断模块1222,将空闲的域内标识赋值给请求节点的赋值模块1223,以及从域中获取域内节点的数量值,并将该数量值转换为对应的N位比特值,并根据该比特值生成请求节点的域内标识的第二计算模块1224。本实施例的节点标识生成装置生成节点标识的具体过程可以参考上述分布式网络构造方法实施例中的具体描述,在此不再赘述。本实施例提供了一种构造分布式网络时的节点的节点标识生成装置,其节点标识是按照网络中的域的分布和域内节点的分布生成的,可以使得分布式网络中的节点分布更加均衡,节点的负载也更加均衡。本发明的分布式网络系统所在场景如图1所示,包括请求路由服务器(RRS),可根据请求加入分布式网络的请求节点的地址,确定所述请求节点所在的域,并获取域标识,根据域具有的域内节点的数量,生成请求节点的域内标识,并可将域标识与域内标识级联,获得请求节点的节点标识;内容索引服务器(CIS),用于对上传到分布式网络系统的内容进行添加、删除及分发的操作,登记内容对应的内容标识,以及接收用户或边缘服务器发送的查询内容请求,进行查询内容处理,并返回所要查询的内容对应的内容标识;边缘服务器(ES),用于根据从RRS获得的其所在域的域标识计算ES的节点标识,或从RRS获得由RRS计算所得的ES的节点标识;用于存储内容,内容具有对应的内容标识;用于查找与内容标识最近的一个或多个边缘服务器登记内容对应的内容索引信息,以及查找ES所要获取的内容索引信息所在的边缘服务器;还用于对其节点列表进行维护,对其邻近的边缘服务器发起节点查询,以及对其性能进行统计、记录。图1示出的本发明的分布式网络的场景示意图中的RRS的具体结构如图13所示,CIS的具体结构如图14所示,一个ES的具体结构如图15所示,图13图15的组合即构成了图1所示的分布式网络架构。下面分别对图13图15进行具体说明。图13为本发明实施例的分布式网络系统中的RRS的具体结构示意图,如图13所示,RRS13包括FieldlD获取模块131,主要是用于ES或者用户节点登录(即加入该分布式网络系统)的时候,根据域标识的划分,判定属于那一个域,还可以计算一个新加入的域的FieldID的分配;PeerlD生成模块132,这个模块主要计算每个新加入到一个域中的节点的PeerID,具体算法可参照上述实施例中的域内标识的计算方法,主要根据一个域内的相关节点的信息来计算;NodeID获取模块133,用于将FieldID与PeerID级联,获得登陆到该网络系统的节点的NodeID。值得注意的是,PeerID生成模块132和NodeID获取模块133也可以移植到用户节点上来实现,只要用户节点从RRS获取到FieldID和用户节点加入的域内的节点数量即可自行计算该用户节点的NodeID。该RRS13还可以包括域划分管理列表134,可以由管理员进行配置,例如每当一个新域加入的时候,管理员就需要在该域划分管理列表134中进行域的配置,传统的方式是根据地址段或者用户节点提供的位置信息进行判断用户节点所在的域。域管理模块135,对系统中的域的分布情况和域中节点的分布情况进行管理,其管理的信息具体包括有域的数量、域标识的有效长度和域的列表信息等。其数据结构如下<table>tableseeoriginaldocumentpage22</column></row><table>其中,FielcLNum表示系统中目前由多少个域;FieldBucket_Len记录当前每个FieldID的有效Bit位,可设置为常数,但一般情况下FieldBucket_Len=logFieldNum;FieldList记录了系统中每个域的相关情况,其中,FieldID为计算出来的Bit位字符串,通常情况下取32位;Peer_Num为本域中拥有的ES节点的数量;AccessES_List为从本域中加入的ES节点中,随机选取几个ES作为AES;FreePeerlD—Num表示当有节点掉线时需要记录的这些节点的数量;FreePeerID_List为掉线节点的PeerID的记录列表,当一个新的节点加入或者一个掉线的节点恢复时,可以直接从该PeerID的记录列表中选择一个NodeID作为自己的NodeID中的域内标识部分。在节点加入到该分布式网络系统,需要计算节点的NodeID时,会用到该域管理模块135中管理的参数。图14为本发明实施例的分布式网络系统中的CIS的具体结构示意图,如图14所示,该CIS14可以包括内容索引管理模块141,每一个上传到系统中的内容都需要在该模块上进行登记,该模块记录了一些内容的元数据信息;还用来判定上传的内容是否已经在系统中登记过;内容操作模块142,当用户节点检测到某个内容为非法的时候,由该模块发起删除内容的请求,同时,当内容运营商需要注入批量的内容的时候,可以通过该模块,和一个指定的内容分发服务器结合,把内容发送到需求的域中;关键字查询模块143,以在CIS上实现模糊查询,使得用户可以从查询结果中选择内容,并获取该内容的ContentID。图15为本发明实施例的分布式网络系统中的ES的具体结构示意图,如图15所示,该ES15包括内容索引登记模块151,用于记录、管理与该ES15的节点标识距离最小的内容标识所标识的内容索引信息;节点管理模块152,用于对其节点列表进行维护;查询模块153,用于对其邻近的边缘服务器发起节点查询,以及发起对所要查询的内容对应的内容标识的查询;性能统计模块154,用于对其性能进行统计、记录。其中内容索引登记模块151上记录其拥有的内容ID和本节点ID距离最小的内容标识对应的节点的节点信息,数据结构如下,其中ContentID为另一节点上存储的内容对应的ContentID,PeerList中存储的NodeID为存储内容的另一节点的节点信息<table>tableseeoriginaldocumentpage23</column></row><table>节点管理模块152,计算出来本地存储的内容的内容ID,然后查找到与该内容ID最接近的NodeID所对应的节点进行该内容ID的登记;在该模块中还可以实现节点列表即对邻居节点的维护等功能。其中对邻居节点的维护主要是维护本节点上的各个K桶,由于本发明实施例中对于FieldID的有效长度和NodeID的有效长度进行了控制,所以,考虑到该分布式网络系统的可扩展性,在开始的时候设定一个域数量的上限值,如是2n。在通常情况下,n需要根据该分布式网络系统对域的划分情况来设定,为了便于以后的扩展,n可以被设定的很大,但是为了避免加入域的节点中过多地存在空的K桶(即其维护的某些K桶所记录的范围内没有节点信息),尽量要把n设的比较合适,这个n就被称为域的有效长度,即本节点维护的记录其他域中的节点信息的节点列表的最大标识。这样,本节点的节点列表标识从0到n-1的K桶中记录着其他域中的节点信息,而标识大于n的其他K桶记录着与本节点同一域中的节点的节点信息。本节点第i个K桶的数据结构可以表示如下<table>tableseeoriginaldocumentpage23</column></row><table>性能统计模块154,主要对本节点,即ES15的当前的一些性能指标进行统计。比如上行的空闲带宽,下行的空闲带宽、CPU利用率、内存的利用率、剩余有效的存储空间。根据不同的性能请求,把相关的统计数据发给请求性能指标的节点,例如在某一节点对本节点有下述请求时,可以但不限于返回下述性能统计数据①上传内容请求——获取本域空闲资源比较多的节点,资源包括硬盘、下行带宽、内存等的大小;②迁移内容请求——内容迁入节点,资源包括硬盘、下行带宽、内存等的大小;内容迁出节点,资源包括上行带宽;③删除内容请求——针对资源比较紧张的节点;下载内容请求——节点的上行带宽、内存等资源。本实施例提供的分布式网络系统说明了该系统中各个设备之间的连接关系及各个设备对其他设备上的信息如何进行操作管理。其具体的操作方法,如节点即ES的NodeID如何计算获得、如何进行节点查询和内容查询、节点列表如何配置管理等,均在上述方法实施例中涉及,在此不再赘述。本实施例提供的分布式网络系统避免了采用现有KAD算法直接HASH得到节点的NodeID而带来的网络中的节点分布不均衡的问题,使得分布式网络中的节点分布更加均衡,节点的负载也更加均衡;另外,对FieldID和PeerID各自的有效长度进行了限定,从而使得加入到网络中的节点所需要维护的节点列表大大减少,节点查询时的消息跳转的次数减少,从而降低了系统的开销。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可获取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。权利要求一种分布式网络构造方法,其特征在于,包括根据请求加入分布式网络的请求节点的地址,确定所述请求节点所在的域,并获取域标识;根据所述域具有的域内节点的数量,生成所述请求节点的域内标识;将所述域标识与所述域内标识级联,获得所述请求节点的节点标识;将所述节点标识发送至所述请求节点,所述请求节点根据其获得的节点标识获取邻近节点的节点信息,以加入所述分布式网络。2.根据权利要求1所述的分布式网络构造方法,其特征在于,所述获取所述域标识包括设定域标识的有效长度M,M为正整数;将所述分布式网络中已有域的数量值表示为M位比特值,并根据该比特值生成所述域的域标识。3.根据权利要求1所述的分布式网络构造方法,其特征在于,所述根据所述域具有的域内节点的数量,生成所述请求节点的域内标识包括设定域内标识的有效长度N,N为正整数;判断是否存在空闲的域内标识;若存在,则将所述空闲的域内标识赋值给所述请求节点;否则从所述域中获取域内节点的数量值,并将该数量值转换为对应N位比特值,并根据该比特值生成所述请求节点的域内标识。4.根据权利要求1、2或3所述的分布式网络构造方法,其特征在于,所述请求节点根据其获得的节点标识获取邻近节点的节点信息,以加入所述分布式网络包括所述请求节点向其已知的接入节点发送针对所述请求节点的查询请求;所述请求节点接收所述接入节点返回的节点标识与所述请求节点的节点标识异或距离最小的邻近节点的节点信息,所述节点信息中包括所述邻近节点的节点标识;将所述邻近节点的节点标识与所述请求节点的节点标识进行匹配,根据匹配的比特位数,记录所述邻近节点的节点信息到所述请求节点的相应的节点列表中;将所述邻近节点作为其再次发送针对所述请求节点的查询请求的接入节点,以查询节点标识与所述请求节点的节点标识距离最小的邻近节点的节点信息,直到所述请求节点接收到的邻近节点全部为所述接入节点,查询结束,所述请求节点加入所述分布式网络。5.根据权利要求4所述的分布式网络构造方法,其特征在于,还包括在所述分布式网络中的一个或多个节点接收不到一退出节点的响应消息时,接收所述分布式网络中的一个或多个节点发送的针对所述退出节点的处理请求;查看失效节点列表,并对所述退出节点做出是否失效的判定处理。6.根据权利要求5所述的分布式网络构造方法,其特征在于,所述查看失效节点列表,对所述退出节点做出是否失效的判定处理包括若所述失效节点列表中不存在所述退出节点的节点信息,则在所述失效节点列表中创建所述退出节点;并判断所述退出节点是否失效,若是,则将所述退出节点的节点标识写入所述退出节点所在域的空闲域内标识列表中;若所述失效节点列表中存在所述退出节点的节点信息,并且所述退出节点没有被判断过是否失效,则判断所述退出节点是否失效;若是,则将所述退出节点的节点标识写入所述退出节点所在域的空闲域内标识列表中。7.根据权利要求5或6所述的分布式网络构造方法,其特征在于,还包括周期性扫描所述失效节点列表并删除所述失效节点列表中记录的过期节点信息的步骤。8.根据权利要求4所述的分布式网络构造方法,其特征在于,还包括当所述分布式网络中的内容查询请求节点发起对包括内容标识的内容索引信息的查询时,内容查询请求节点从其节点列表中找出节点标识与要查询的内容标识距离最小的节点作为第一查询节点,并向所述第一查询节点发送针对所述内容标识的查询请求;若在所述第一查询节点的节点列表中没有找到距离比所述第一查询节点的节点标识与所述内容标识距离更小的节点,则将所述第一查询节点的节点信息返回给所述内容查询请求节点;若在所述第一查询节点的节点列表中找到距离比所述第一查询节点的节点标识与所述内容标识距离更小的第二查询节点,则将所述第二查询节点的节点信息返回给所述内容查询请求节点;所述内容查询请求节点向返回的节点发送查询所述内容标识的请求,若该节点上管理有所述内容索引信息,则返回所述内容索引信息到所述内容查询请求节点;否则,在该节点上继续查找节点标识与内容标识距离最小的节点以查询所述内容索引信息。9.根据权利要求8所述的分布式网络构造方法,其特征在于,所述在所述第一查询节点的节点列表中找到比所述第一查询节点更加接近所述内容标识的第二查询节点包括在所述第一查询节点的节点列表中找到与所述内容标识的所述M位的前缀距离最小的M位比特值所标识的邻近节点列表;在所述邻近节点列表中查找与所述内容标识的所述M位后的所述N位前缀距离最小的节点列表中的邻近节点,查找到的所述邻近节点即所述第二查询节点。10.根据权利要求8或9所述的分布式网络构造方法,其特征在于,还包括第一节点加入到所述分布式网络的第一域后,若所述第一域中仅有所述第一节点,则所述第一节点查找到域标识与所述第一域的域标识距离最小的第二域中的所有节点,获取记录在所述第二域中的所有节点上的内容标识的M位的前缀大于等于所述第一域的域标识的内容索引信息;若所述第一域中还有其他节点,则所述第一节点查找到节点标识与所述第一节点的节点标识距离最小的第二节点,获取记录在所述第二节点上的内容标识的M位后的N位前缀大于等于所述第一节点的域内标识的内容索引信息。11.一种在权利要求i-io任一所述的方法构造的分布式网络中进行域内任务处理方法,其特征在于,包括第一节点接收任务处理请求,所述任务处理请求包括内容上传处理请求、增加或删除内容处理请求;所述第一节点判断其自身的资源性能是否满足任务处理的要求;若满足,则将所述第一节点的节点信息返回发起所述任务处理请求的第二节点,所述第二节点向所述第一节点发起操作;若不满足,则从所述第一节点的节点列表中选择资源性能满足任务处理的要求的第三节点,将所述第三节点的节点信息返回发起所述任务处理请求的第二节点,所述第二节点向所述第三节点发起操作;其中选择第三节点时,先从存储有所述第一节点所在域的域内节点信息的节点列表中选择。12.—种节点标识生成装置,其特征在于,包括域标识获取模块,用于根据请求加入分布式网络的请求节点的地址,确定所述请求节点所在的域,并获取域标识;域内标识生成模块,用于根据所述域具有的域内节点的数量,生成所述请求节点的域内标识;节点标识获取模块,用于将所述域标识与所述域内标识级联,获得所述请求节点的节点标识。13.根据权利要求12所述的节点标识生成装置,其特征在于,所述域标识获取模块包括第一设置模块,用于设定域标识的有效长度M,M为正整数;第一计算模块,用于将所述分布式网络中已有域的数量值表示为M位比特值,并根据该比特值生成所述域的域标识。14.根据权利要求12所述的节点标识生成装置,其特征在于,所述域内标识生成模块包括第二设置模块,用于设定域内标识的有效长度N,N为正整数;判断模块,用于判断是否存在空闲的域内标识;赋值模±央,用于将所述空闲的域内标识赋值给所述请求节点;第二计算模块,用于从所述域中获取域内节点的数量值,并将该数量值转换为对应的N位比特值,并根据该比特值生成所述请求节点的域内标识。15.—种分布式网络系统,其特征在于,包括请求路由服务器,用于根据请求加入分布式网络的请求节点的地址,确定所述请求节点所在的域,并获取域标识;根据所述域具有的域内节点的数量,生成所述请求节点的域内标识;并将所述域标识与所述域内标识级联,获得所述请求节点的节点标识;边缘服务器,用于根据从所述请求路由服务器获得的其所在域的域标识计算所述边缘服务器的节点标识,或从所述请求路由服务器获得由所述请求路由服务器计算所得的所述边缘服务器的节点标识;用于存储内容,所述内容具有对应的内容标识;用于查找与所述内容标识最近的一个或多个边缘服务器登记所述内容对应的内容索引信息,以及查找所述边缘服务器所要获取的内容索引信息所在的边缘服务器;还用于对其节点列表进行维护,对其邻近的边缘服务器发起节点查询,以及对其性能进行统计、记录;内容索引服务器,用于对上传到所述分布式网络系统的内容进行添加、删除及分发的操作,登记所述内容对应的内容标识,以及接收用户或所述边缘服务器发送的查询内容请求,进行查询内容处理,并返回所要查询的内容对应的内容标识。16.根据权利要求15所述的分布式网络系统,其特征在于,所述请求路由服务器包括域标识获取模块,用于根据请求加入分布式网络的请求节点的地址,指定所述请求节点所在的域,所述域具有一域标识;域内标识生成模块,用于根据所述域具有的域内节点的数量,生成所述请求节点的域内标识;节点标识获取模块,用于将所述域标识与所述域内标识级联,获得所述请求节点的节点标识。17.根据权利要求16所述的分布式网络系统,其特征在于,所述请求路由服务器还包括域划分管理列表,用于配置各个域的划分条件及对域的划分进行管理;域管理模块,用于对所述分布式网络系统中的域的数量、域标识的有效长度和域的列表信息进行管理。18.根据权利要求15所述的分布式网络系统,其特征在于,所述边缘服务器包括内容索引管理模块,用于记录、管理与其节点标识的距离最小的内容标识所标识的内容索引信息;节点管理模块,用于对其节点列表进行维护;查询模块,用于对其邻近的边缘服务器发起节点查询,以及发起对所要查询的内容对应的内容标识的查询;性能统计模块,用于对其性能进行统计、记录。全文摘要本发明实施例涉及一种分布式网络构造方法、装置和系统以及任务处理方法。本发明实施例的方法根据请求加入分布式网络的请求节点的地址,指定请求节点所在的域,所述域具有一域标识;根据域具有的域内节点的数量,生成请求节点的域内标识;将域标识与域内标识级联,获得请求节点的节点标识;将节点标识发送至请求节点,请求节点根据其获得的节点标识获取邻近节点的节点信息,以加入分布式网络。本发明实施例避免了采用现有KAD算法直接哈希得到节点的节点标识而带来的网络中的节点分布不均衡的问题,使得分布式网络中的节点分布更加均衡,节点上的负载也更加均衡,并且降低了节点维护的冗余信息以及节点间交互的消息数量。文档编号H04L12/54GK101753610SQ20081024045公开日2010年6月23日申请日期2008年12月19日优先权日2008年12月19日发明者王铁英申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1