CN113132443B - 资源获取方法、装置及cdn网络中的节点设备 - Google Patents

资源获取方法、装置及cdn网络中的节点设备 Download PDF

Info

Publication number
CN113132443B
CN113132443B CN201911425952.7A CN201911425952A CN113132443B CN 113132443 B CN113132443 B CN 113132443B CN 201911425952 A CN201911425952 A CN 201911425952A CN 113132443 B CN113132443 B CN 113132443B
Authority
CN
China
Prior art keywords
node
resource
target
priority
hash ring
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911425952.7A
Other languages
English (en)
Other versions
CN113132443A (zh
Inventor
辛波
年彦东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Kingsoft Cloud Network Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN201911425952.7A priority Critical patent/CN113132443B/zh
Priority to PCT/CN2020/134229 priority patent/WO2021135835A1/zh
Publication of CN113132443A publication Critical patent/CN113132443A/zh
Application granted granted Critical
Publication of CN113132443B publication Critical patent/CN113132443B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供了一种资源获取方法、装置及CDN网络中的节点设备;当从节点设备中查询不到用户待访问的资源域名对应的资源时,获取与资源域名相关联的节点哈希环;根据资源域名对应的资源,从节点哈希环中的虚拟点中确定目标虚拟点,进而从目标虚拟点对应的目标节点获取资源域名对应的资源。本发明仅需要保证基于与资源域名相关联的目标节点建立的节点哈希环中的至少一个节点中保存该资源,当前的节点设备即可以通过该节点哈希环获取到待访问的资源域名对应的资源,提高了在回源过程中获得资源的命中率,降低了CDN网络带宽的浪费,同时节省了CDN网络的存储资源。

Description

资源获取方法、装置及CDN网络中的节点设备
技术领域
本发明涉及互联网技术领域,尤其是涉及一种资源获取方法、装置及CDN网络中的节点设备。
背景技术
内容分发网络(Content Delivery Network,简称CDN)中通常设置有边缘节点、中层节点、上层节点和源站;如果边缘节点中没有存储用户想要访问的资源,则需要回源至中层节点、上层节点或源站获取资源。相关技术中,对于一个资源来说,该资源通常存储在很多中层节点或上层节点上,重复存储的方式会浪费较多的CDN网络存储资源;另外,边缘节点在选择回源的节点时,通常仅考虑各个节点的网络状况和带宽状况,很可能导致选择的节点中没有存储用户想要访问的资源,这时还需要继续选择节点以获取资源,因此获得资源的命中率低,易造成CDN网络带宽的浪费。
发明内容
有鉴于此,本发明的目的在于提供一种资源获取方法、装置及CDN网络中的节点设备,以提高边缘节点在回源过程中获得资源的命中率,降低CDN网络带宽的浪费,并节省CDN网络的存储资源。
第一方面,本发明实施例提供了一种资源获取方法,应用于CDN网络中的节点设备;该方法包括:如果从节点设备中查询不到用户待访问的资源域名对应的资源,获取与资源域名相关联的节点哈希环;其中,节点哈希环预先根据CDN网络中与资源域名相关联的目标节点建立;目标节点预设有节点权重;节点哈希环由多个虚拟点组成,每个目标节点对应至少一个虚拟点,每个目标节点对应的虚拟点的数量与该目标节点的节点权重相关联;根据资源域名对应的资源,从节点哈希环中的虚拟点中确定目标虚拟点;从目标虚拟点对应的目标节点获取资源域名对应的资源。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,上述节点哈希环,具体通过下述方式建立:获取与资源域名相关联的节点组合;其中,节点组合中包括CDN网络中的多个节点、以及每个节点的优先级;根据每个节点的优先级,从节点组合中选择目标节点,根据目标节点建立节点哈希环。
结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第二种可能的实施方式,其中,上述节点组合以及与上述节点组合相关联的资源域名,保存在上述CDN网络内的DNS服务器中;上述获取与资源域名相关联的节点组合的步骤,包括:向CDN网络内的DNS服务器发送资源域名,以使CDN网络内的DNS服务器解析资源域名,得到并返回与资源域名相关联的节点组合的SRV格式的DNS解析记录;其中,DNS解析记录中包括节点组合中的多个节点、以及每个节点的节点权重和优先级。
结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,上述节点组合中的节点的优先级为多级优先级;上述根据每个节点的优先级,从节点组合中选择目标节点,根据目标节点建立节点哈希环的步骤,包括:针对每级优先级,从节点组合中选择当前优先级对应的节点,根据当前优先级对应的节点建立当前优先级对应的节点哈希环。
结合第一方面的第三种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,其中,上述节点组合中的节点的优先级包括第一优先级和第二优先级;其中,第一优先级高于第二优先级;上述针对每级优先级,从节点组合中选择当前优先级对应的节点,根据当前优先级对应的节点建立当前优先级对应的节点哈希环的步骤,包括:从节点组合中选择第一优先级对应的节点,根据第一优先级对应的节点建立主用节点哈希环;从节点组合中选择第二优先级对应的节点,根据第二优先级对应的节点建立备用节点哈希环。
结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,其中,上述节点组合中的节点的优先级为多级优先级;每级优先级对应一个节点哈希环;从节点哈希环中的虚拟点中确定目标虚拟点的步骤,包括:按照优先级从高到低的顺序,从最高优先级对应的节点哈希环中确定目标虚拟点;查询目标虚拟点对应的节点的历史使用记录,如果历史使用记录指示目标虚拟点对应的节点不可用,从下一优先级的节点哈希环中确定更新的目标虚拟点,继续执行查询目标虚拟点对应的节点的历史使用记录的步骤,直至确定出的目标虚拟点对应的节点可用。
结合第一方面的第五种可能的实施方式,本发明实施例提供了第一方面的第六种可能的实施方式,其中,上述方法还包括:如果历史使用记录指示目标虚拟点对应的节点不可用,将目标虚拟点对应的节点哈希环中,节点不可用的虚拟点删除;如果直至最后一级优先级的节点哈希环中确定更新的目标虚拟点后,目标虚拟点的历史使用记录指示目标虚拟点对应的节点不可用,继续执行从最高优先级对应的节点哈希环中确定目标虚拟点的步骤,直至确定出的目标虚拟点对应的节点可用。
结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第七种可能的实施方式,其中,上述节点组合中的节点的优先级包括第一优先级和第二优先级;第一优先级对应主用节点哈希环;第二优先级对应备用节点哈希环;其中,第一优先级高于第二优先级;从节点哈希环中的虚拟点中确定目标虚拟点的步骤,包括:从主用节点哈希环中确定目标虚拟点;查询目标虚拟点对应的节点的历史使用记录,如果历史使用记录指示目标虚拟点对应的节点不可用,从备用节点哈希环中确定更新的目标虚拟点。
结合第一方面的第七种可能的实施方式,本发明实施例提供了第一方面的第八种可能的实施方式,其中,上述方法还包括:如果从主用节点哈希环中确定的目标虚拟点对应的节点不可用,将主用节点哈希环中,节点不可用的虚拟点删除;如果从备用节点哈希环中确定更新的目标虚拟点对应的节点不可用,将备用节点哈希环中,节点不可用的虚拟点删除;继续执行从主用节点哈希环中确定目标虚拟点的步骤,直至确定出的目标虚拟点对应的节点可用。
结合第一方面,本发明实施例提供了第一方面的第九种可能的实施方式,其中,上述节点哈希环中,每个目标节点对应的虚拟点的数量为:该目标节点的节点权重乘以预设倍数;节点哈希环中的每个虚拟点设置有虚拟点哈希值;上述根据资源域名对应的资源,从节点哈希环中的虚拟点中确定目标虚拟点的步骤,包括:计算资源域名对应的资源的资源哈希值;采用一致性哈希算法,从节点哈希环中的各个虚拟点中选择虚拟点哈希值与资源哈希值相匹配的虚拟点,将选择出的虚拟点确定为目标虚拟点。
结合第一方面,本发明实施例提供了第一方面的第十种可能的实施方式,其中,上述从目标虚拟点对应的节点上获取资源域名对应的资源的步骤,包括:向CDN网络内的DNS服务器发送目标虚拟点对应的节点的节点域名,以使CDN网络内的DNS服务器解析节点域名,得到并返回节点域名对应的IP地址列表;从IP地址列表中选择目标IP地址,通过目标IP地址获取资源域名对应的资源。
第二方面,本发明实施例还提供一种资源获取装置,设置于CDN网络中的节点设备;该装置包括:节点哈希环获取模块,用于如果从节点设备中查询不到用户待访问的资源域名对应的资源,获取与资源域名相关联的节点哈希环;其中,节点哈希环预先根据CDN网络中与资源域名相关联的目标节点建立;目标节点预设有节点权重;节点哈希环由多个虚拟点组成,每个目标节点对应至少一个虚拟点,每个目标节点对应的虚拟点的数量与该目标节点的节点权重相关联;目标虚拟点确定模块,用于根据资源域名对应的资源,从节点哈希环中的虚拟点中确定目标虚拟点;资源获取模块,用于从目标虚拟点对应的目标节点获取资源域名对应的资源。
结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,上述节点哈希环,具体通过下述方式建立:获取与资源域名相关联的节点组合;其中,节点组合中包括CDN网络中的多个节点、以及每个节点的优先级;根据每个节点的优先级,从节点组合中选择目标节点,根据目标节点建立节点哈希环。
第三方面,本发明实施例还提供一种CDN网络中的节点设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述方法。
第四方面,本发明实施例还提供一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述方法。
上述一种资源获取方法、装置及CDN网络中的节点设备,应用于CDN网络中的节点设备;在从节点设备中查询不到用户待访问的资源域名对应的资源时,获取与资源域名相关联的节点哈希环;其中,节点哈希环预先根据CDN网络中与资源域名相关联的目标节点建立;目标节点预设有节点权重;节点哈希环由多个虚拟点组成,每个目标节点对应至少一个虚拟点,每个目标节点对应的虚拟点的数量与该目标节点的节点权重相关联;根据资源域名对应的资源,从节点哈希环中的虚拟点中确定目标虚拟点,进而从目标虚拟点对应的目标节点获取资源域名对应的资源。该方式中,无需在多个中层及上层节点中缓存待访问的资源域名对应的资源,仅需要保证在基于与资源域名相关联的目标节点建立的节点哈希环中的至少一个节点中保存该资源即可,当前的节点设备即可以通过该节点哈希环获取到待访问的资源域名对应的资源,提高了边缘节点在回源过程中获得资源的命中率,降低了CDN网络带宽的浪费,同时节省了CDN网络的存储资源。
本发明的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本发明的上述技术即可得知。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施方式,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种资源获取方法的应用场景的示意图;
图2为本发明实施例提供的一种资源获取方法的流程图;
图3为本发明实施例提供的一种资源获取方法中,建立节点哈希环过程的流程图;
图4为本发明实施例提供的另一种资源获取方法的流程图;
图5为本发明实施例提供的另一种资源获取方法中,建立节点哈希环过程的流程图;
图6为本发明实施例提供的另一种资源获取方法的流程图;
图7为本发明实施例提供的一种节点设备的架构图;
图8为本发明实施例提供的一种节点哈希环的示意图;
图9为本发明实施例提供的一种资源获取装置的结构示意图;
图10为本发明实施例提供的一种CDN网络中的节点设备的结构示意图。
具体实施方式
下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了便于理解,首先示出一种资源获取方法的应用场景,如图1所示,该场景包含用户终端、域名系统(Domain Name System,DNS)、CDN节点设备及源站服务器。
上述用户终端可以为移动终端(如平板电脑、手机等)、计算机或专用终端设备,用户终端上安装有客户端或浏览器;用户可以通过该用户终端发出资源访问请求,该资源访问请求中包括待访问资源的网址信息;用户终端通常将该资源访问请求发送至域名系统中的本地递归域名服务器。
上述域名系统通常包括本地递归域名服务器、根域名服务器、顶级域名服务器及各级域名服务器等。在接收到用户终端发送的资源访问请求后,域名系统基于常见的DNS解析的方式获取待访问资源的网址信息对应的网页服务器的IP(Internet Protocol,网际互连协议)地址:即通过本地递归域名服务器、根域名服务器、待访问资源的网址信息所属的顶级域名服务器及各级域名服务器进行层层解析,得到可以获取到待访问资源的某个服务器的访问地址;并将该服务器的访问地址发送至用户终端。用户终端在接收到可以获取到待访问资源的服务器的访问地址后,向该服务器发送资源访问请求。
上述可以获取到待访问资源的服务器可以为CDN网络的节点设备中的边缘节点。CDN网络的节点设备包括边缘节点、中层节点及上层节点。边缘节点的个数最多,直接服务于网络用户(也称为网民);中层节点主要用于汇聚边缘节点回源请求,不直接服务于网络用户,个数较少;上层节点主要是汇聚中层节点回源请求,不直接服务于网络用户,个数最少;通常情况下,一般的网络用户不会为中层或上层节点产生的带宽付费。
CDN网络的节点设备及源站属于内容分发网络;内容分发网络的源站中保存有网站资源,源站中的网站资源通过上层节点、中层节点分发至边缘节点;边缘节点为用户终端直接访问并获取待访问资源的CDN网络的节点设备。当接收到资源访问请求后,如果边缘节点中没有存储该资源访问请求对应的待访问资源中,边缘节点可以向中层节点获取该待访问资源;如果中层节点也没有该待访问资源,可以向上层节点获取该待访问资源;如果上层节点没有该待访问资源,可以向源站获取该待访问资源;上述向上一级节点设备获取待访问资源的过程可称为回源拉取(即上述回源请求)。
相关技术中,CDN节点设备的内部回源过程主要以择优的方式为主;具体而言,1个中层节点覆盖周边的若干个边缘节点,这些边缘节点在回源时均向该中层节点获取资源;1个上层节点覆盖周边的若干个中层节点,这些中层节点在回源时,均向该上层节点获取资源。在内部回源的过程中,选择上一级节点设备时主要考虑网络状况(如是否能与该上一级节点设备通信)及上一级节点设备的带宽情况(也称为水位),但没有考虑要获取的资源是否在该上一级节点设备(中层节点或上层节点)中存在,造成获取资源的命中率低,易造成CDN网络带宽的浪费。此外,如果通过不同的上一级节点设备进行回源,需要在不同的上一级节点设备中均存储要获取的资源,重复存储的方式浪费了较多的CDN网络存储资源。
基于此,本发明实施例提供了一种资源获取方法、装置以及CDN网络中的节点设备,可以应用于各种分布式系统的资源读取过程中。
首先,参见图2所示的一种资源获取方法,该方法应用于CDN网络的节点设备;该方法包括如下步骤:
步骤S200,如果从节点设备中查询不到用户待访问的资源域名对应的资源,获取与资源域名相关联的节点哈希环;其中,节点哈希环预先根据CDN网络中与资源域名相关联的目标节点建立;目标节点预设有节点权重;节点哈希环由多个虚拟点组成,每个目标节点对应至少一个虚拟点,每个目标节点对应的虚拟点的数量与该目标节点的节点权重相关联。
上述节点设备可以为边缘节点或中层节点。如果该节点设备为边缘节点,边缘节点在接收到用户终端发送的资源访问请求后,从内部的存储磁盘中查询是否存储有该资源访问请求对应的待访问资源;上述资源访问请求中包括待访问资源对应的资源域名,该资源域名通常为存储该待访问资源的网站的域名;域名(Domain Name),是由一串用点分隔的名字组成的互联网上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位,域名的表示形式可以为xyz.com等。如果该节点设备为中层节点,中层节点在接收到边缘节点的回源请求后,从内部的存储磁盘中查询是否存储有该回源请求对应的待访问资源;上述回源请求中包括存储待访问资源的资源域名,该资源域名可以为待访问网址。
当节点设备中查询不到用户待访问的资源域名对应的资源时,则确定该节点设备中没有存储该资源,需要从上一级节点设备中回源拉取获得该资源。在实际实现时,首先需要确定从哪个上一级节点设备中进行回源拉取;该上一节点设备中需要存储待访问的资源域名对应的资源。
在CDN网络中对某个网站资源进行分布式存储时,CDN网络的中心平台可以根据一定的规则将将该网站资源存储在一些上层节点及中层节点中;这些上层节点及中层节点可以视为与该网站资源对应的资源域名相关联的目标节点。根据中层节点或上层节点的可承受的带宽情况,可以为各个节点分配权重;通常情况下,该节点可承受的带宽越大,其对应的权重越高。上述优先级可以与当前的节点和节点组合中的各个节点之间的物理距离相关;通常来说两个节点设备之间的物理距离越近,通信速度也就越快,可以为距离当前的节点设备较近的目标节点设置较高优先级。
上述资源域名相关联的节点哈希环可以根据上述资源域名相关联的目标节点建立;具体而言,可以选择节点组合中相同优先级的节点建立节点哈希环;当节点组合中的节点有多个优先级时,可以建立多个节点哈希环。
通常情况下,节点设备可承受的带宽越大,为该节点设备设置的权重越高,对该节点设备的访问量应该越高;针对于一个回源请求,响应该请求的几率应该越高。为了增加权重较大的目标节点的对回源请求的响应几率,可以为各个目标节点设置与其权重成比例的虚拟节点;如权重为1的目标节点,为其设置10个虚拟节点;权重为3的目标节点,为其设置30个虚拟节点。为了区分各个虚拟节点,可以为同一个目标节点对应的虚拟节点分配不同的标号,以虚拟节点对应的目标节点的节点域名及其标号作为该虚拟节点的标识。
在建立节点哈希环的过程中,可以首先根据目标节点对应的各个虚拟节点的标识计算该虚拟节点的哈希值,并采用一致性哈希算法将各个虚拟节点映射在哈希环上,生成节点哈希环。在该哈希环上各个虚拟节点被访问的几率是相同的,而目标节点的虚拟节点个数与其权重相关,各个目标节点的被访问几率与其权重相关;根据该节点哈希环选取相应回源请求的目标节点,可以使有能力承受较大带宽款的节点设备的访问量较大。
步骤S202,根据资源域名对应的资源,从节点哈希环中的虚拟点中确定目标虚拟点。
具体而言,可以计算该资源域名对应的资源的哈希值;在计算过程中,资源域名对应的资源也可以理解为该资源的URL(Uniform Resource Locator,统一资源定位符)地址,然后将该资源的URL地址作为计算哈希值的关键字,从而得到资源域名对应的资源的哈希值;上述统一资源定位符表示形式可以为http://mail.xyz.com/index.html。在计算得到资源域名对应的资源的哈希值后,可以根据一致性哈希算法将该哈希值映射到建立的节点哈希环上,可以按照一定规律选择与该资源域名对应的资源的哈希值相匹配的虚拟点,如找到第一个比资源的哈希值大的虚拟点,将该虚拟点作为目标虚拟节点。
步骤S204,从目标虚拟点对应的目标节点获取资源域名对应的资源。
在确定了目标虚拟点后,可以将该目标虚拟点对应的目标节点作为响应当前节点设备的回源请求的上一级节点设备;该节点设备可能为中层节点,也可能为上层节点。具体而言,可以向CDN网络内的DNS服务器发送目标虚拟点对应的节点的节点域名,当接收到DNS服务器解析该节点域名后返回节点域名对应的IP地址后,向该IP地址发送待访问资源的回源请求,以使该目标虚拟点对应的目标节点将待访问资源返回至当前的节点设备。
在一些情况下,选择的目标虚拟节点对应的目标节点无法响应当前设备的回源请求;该情况可以记录在该目标节点的历史使用记录中;此时,删除该目标节点在节点哈希环上的所有虚拟节点,并重新选择目标虚拟节点。当在上述步骤中获取到了多个优先级不同的节点哈希环时,可以从其他节点哈希环中选取目标虚拟节点;通常遵循优先级从高到低的顺序从不同的节点哈希环中选取目标虚拟节点。
上述一种资源获取方法,在从节点设备中查询不到用户待访问的资源域名对应的资源时,获取与资源域名相关联的节点哈希环;其中,节点哈希环预先根据CDN网络中与资源域名相关联的目标节点建立;目标节点预设有节点权重;节点哈希环由多个虚拟点组成,每个目标节点对应至少一个虚拟点,每个目标节点对应的虚拟点的数量与该目标节点的节点权重相关联;根据资源域名对应的资源,从节点哈希环中的虚拟点中确定目标虚拟点,进而从目标虚拟点对应的目标节点获取资源域名对应的资源。该方式中,无需在多个中层及上层节点中缓存待访问的资源域名对应的资源,仅需要保证在基于与资源域名相关联的目标节点建立的节点哈希环中的至少一个节点中保存该资源,当前的节点设备即可以通过该节点哈希环获取到待访问的资源域名对应的资源,提高了边缘节点在回源过程中获取资源的命中率,降低了CDN网络带宽的浪费,同时节省了CDN网络的存储资源。
本发明实施例还提供另一种资源获取方法,该方法在上述实施例方法的基础上实现;该方法基于预先建立的节点哈希环实现;该方法重点描述当获取到多个优先级不同的节点哈希环时,从节点哈希环中的虚拟点中确定目标虚拟点的实现过程(通过下述步骤S402-S412实现),以及从目标虚拟点对应的节点上获取资源域名对应的资源的具体实现过程(通过下述步骤S414-S416实现)。
在此之前,首先描述上述节点哈希环的建立方式,如图3所示,具体包括如下步骤:
步骤S300,获取与资源域名相关联的节点组合;其中,节点组合中包括CDN网络中的多个节点、以及每个节点的优先级。
上述节点组合,包括目标节点、以及每个目标节点节点的权重和优先级等信息,可以保存在设定的设备中;当当前节点设备进行回源拉取时,可以首先向设定设备发送请求;该请求中包括待访问的资源域名,以使该设定设备将与资源域名相关联的节点组合发送给当前的节点设备。由于该过程与常见的DNS解析方式有相似之处,可以将该设定设备视为CDN网络中的内部DNS服务器。
步骤S302,根据每个节点的优先级,从节点组合中选择目标节点,根据目标节点建立节点哈希环。
当节点组合中的节点的优先级为多级优先级时,可以针对每级优先级,从节点组合中选择当前优先级对应的节点,根据当前优先级对应的节点建立当前优先级对应的节点哈希环。具体而言,当节点组合中的节点的优先级为多级优先级时,可以将相同优先级的节点作为一组,分别生成节点哈希环,最后得到多个节点哈希环。同时还可以将节点哈希环中节点的优先级设置为节点哈希环的优先级;每级优先级对应一个节点哈希环。
假设节点组合中包括第一优先级的5个节点,第二优先级的6个节点,第三优先级的4个节点,首先可以将第一优先级的5个节点作为目标节点,并根据第一优先级的5个节点对应的各个虚拟节点的标识计算其哈希值,并采用一致性哈希算法将各个虚拟节点映射在哈希环上,生成第一优先级的节点哈希环。以此类推,再依次建立第二优先级的节点哈希环及第三优先级的节点哈希环,该建立顺序可以由根据需求设定。
基于上述节点哈希环,如图4所示,上述资源获取方法包括如下步骤:
步骤S400,如果从节点设备中查询不到用户待访问的资源域名对应的资源,获取与资源域名相关联的节点哈希环;其中,节点哈希环预先根据CDN网络中与资源域名相关联的目标节点建立;目标节点预设有节点权重;节点哈希环由多个虚拟点组成,每个目标节点对应至少一个虚拟点,每个目标节点对应的虚拟点的数量与该目标节点的节点权重相关联。
步骤S402,按照优先级从高到低的顺序,根据资源域名对应的资源,从最高优先级对应的节点哈希环中确定目标虚拟点。
具体而言,可以计算资源域名对应的资源的资源哈希值后,根据一致性哈希算法将该资源哈希值映射到最高优先级对应的节点哈希环上,可以选取该节点哈希环上与资源哈希值距离最近的虚拟点作为目标虚拟点。
步骤S404,查询目标虚拟点对应的节点的历史使用记录;具体而言,该历史使用记录可以为目标虚拟节点对应的节点响应回源请求的历史结果;如成功响应上一次其他节点设备向该节点发送的回源请求,可以将历史使用记录设置为using,代表该节点能正常使用;如果没有成功响应,可以该历史使用记录设置为down,代表该节点无法使用;该历史响应记录可以作为该节点的相关信息保存在DNS解析记录中。
步骤S406,如果历史使用记录指示目标虚拟点对应的节点不可用,执行步骤S408;如果可用,执行步骤S414;在查询到历史使用记录后,可以根据该历史使用记录确定目标虚拟点是否可用;如历史使用记录为up时,可以确定目标虚拟点可用,历史使用记录为down时,可以确定目标虚拟点可不用。
步骤S408,将目标虚拟点对应的节点哈希环中,节点不可用的虚拟点删除;实际上,如果目标虚拟点对应的实际节点不可用,在该节点哈希环上,通常还有多个虚拟点对应该实际节点;在该节点哈希环还会可能再次选取到与该实际节点对应的虚拟点,仍然不可用,使得整个方法变得冗余;因此,当确定一个实际节点不可用时,需要将对应的节点哈希环上,该实际节点对应的虚拟点都删除。
步骤S410,如果当前的节点哈希环为最后一级优先级的节点哈希环,执行步骤S402;如果当前的节点哈希环不是最后一级优先级的节点哈希环,执行步骤S412;在实际情况中,当针对于该资源域名建立了多个不同优先级的节点哈希环时,可以通过查看当前的节点哈希环的优先级的方式确定当前的节点哈希环是否为最后一级优先级的节点哈希环,即优先级最低的节点哈希环。
步骤S412,根据资源域名对应的资源,从下一优先级的节点哈希环中确定更新的目标虚拟点,执行步骤S404;如果当前的节点哈希环不是优先级最低的节点哈希环,可以在优先级比当前的节点哈希环低一级的节点哈希环中,根据资源域名对应的资源的哈希值确定在该节点哈希环中的目标虚拟点;该确定目标虚拟点的过程与从最高优先级对应的节点哈希环中确定目标虚拟点的过程类似,均采用一致性哈希原理。接下来,还需要通过历史使用记录确定更新后的目标虚拟点是否可用,如步骤S306所述。
步骤S414,向CDN网络内的DNS服务器发送目标虚拟点对应的节点的节点域名,以使CDN网络内的DNS服务器解析节点域名,得到并返回节点域名对应的IP地址列表。
如果确定该目标虚拟节点是可用的,此时虽然当前的节点设备已经获取到对应的实际节点的节点域名,但无法访问该节点。此时,需要向CDN网络内的DNS服务器发送目标虚拟点对应的节点的节点域名;CDN网络内的DNS服务器在接收到该节点域名后,对其进行域名解析,得到节点域名对应的IP地址列表,并把IP地址列表返回至当前的节点设备中。
步骤S416,从IP地址列表中选择目标IP地址,通过目标IP地址获取资源域名对应的资源。
在实际中,一个节点可能对应于多个服务器;当前的节点设备接收到的IP地址列表中列出了目标虚拟点对应的节点的多个IP地址;可以随机在该IP地址列表中选取一个IP地址作为目标IP地址,并访问该目标IP地址获取到资源域名对应的资源。
上述一种资源获取方法,在从节点设备中查询不到用户待访问的资源域名对应的资源时,获取与资源域名相关联的节点哈希环;当获取到的节点哈希环为多个,且优先级不同时,按照优先级从高到低的顺序,根据资源域名对应的资源,从最高优先级对应的节点哈希环中确定目标虚拟点,并查询目标虚拟点对应的节点的历史使用记录,以确定该节点是否可用,如果该节点不可用,从下一优先级的节点哈希环中确定目标虚拟点,直至获取可用的目标虚拟节点;如果可用,通过CND网络中的DNS进行域名解析,以获取该节点的IP地址,从而访问该节点获取到资源域名对应的资源。该方式中,可以依照优先级的顺序从与该资源域名相关联的多个节点哈希环中选取可用的节点,从而获取该资源域名对应的资源,提高了边缘节点在回源过程中获取资源的命中率,降低了CDN网络带宽的浪费。
本发明实施例还提供另一种资源获取方法,该方法在上述实施例方法的基础上实现;该方法基于预先建立的节点哈希环实现;该方法重点描述当节点组合中的节点的优先级包括第一优先级和第二优先级,且第一优先级高于第二优先级时,从节点哈希环中确定目标虚拟节点的具体实现过程(通过下述步骤S402-S416实现)。如图5所示,上述节点哈希环通过以下方式建立:
步骤S500,向CDN网络内的DNS服务器发送资源域名,以使CDN网络内的DNS服务器解析资源域名,得到并返回与资源域名相关联的节点组合的SRV格式的DNS解析记录;其中,DNS解析记录中包括节点组合中的多个节点、以及每个节点的节点权重和优先级。
上述节点组合以及与节点组合相关联的资源域名,可以保存在CDN网络内的DNS服务器中;具体而言,可以在CDN网络内部设置DNS服务器,并将节点组合以及与节点组合相关联的资源域名,保存在CDN网络内的DNS服务器中。在建立与设定的资源域名相关的节点哈希环时,可以向该DNS服务器发送资源域名;该DNS服务器用于对接收到的资源域名进行解析,得到与该资源域名相关联的节点组合的相关信息,并将其作为该资源域名的DNS解析记录返回至当前的节点设备中;该DNS解析记录中可以包括节点组合中的多个节点、以及每个节点的权重和优先级。该DNS解析记录可以以SRV格式存储在DNS服务器中,SRV记录是DNS服务器的数据库中支持的一种资源记录的类型。步骤S502,从节点组合中选择第一优先级对应的节点,根据第一优先级对应的节点建立主用节点哈希环。
步骤S504,从节点组合中选择第二优先级对应的节点,根据第二优先级对应的节点建立备用节点哈希环。
上述主用节点哈希环和备用节点哈希环均由多个虚拟点组成;在主用节点哈希环中,每个第一优先级的节点对应至少一个虚拟点,该节点对应的虚拟点的数量与该目标节点的权重相关联;在备用节点哈希环中,每个第二优先级的节点对应至少一个虚拟点,该节点对应的虚拟点的数量与该目标节点的权重相关联。
在实际实现过程中,节点哈希环中,每个目标节点对应的虚拟点的数量可以为:该目标节点的权重乘以预设倍数,如该预设倍数可以为10;节点哈希环中的每个虚拟点设置有虚拟点哈希值;具体地,可以根据该虚拟点对应的节点域名和为该虚拟点设定的下标计算出此虚拟点的哈希值。
基于上述节点哈希环,如图6所示,上述资源获取方法包括如下步骤:
步骤S600,如果从节点设备中查询不到用户待访问的资源域名对应的资源,获取与资源域名相关联的节点哈希环;其中,节点哈希环预先根据CDN网络中与资源域名相关联的目标节点建立;目标节点预设有节点权重;节点哈希环由多个虚拟点组成,每个目标节点对应至少一个虚拟点,每个目标节点对应的虚拟点的数量与该目标节点的节点权重相关联。
步骤S602,计算资源域名对应的资源的资源哈希值;具体而言,采用哈希算法计算资源域名的哈希值,作为该资源域名对应的资源的资源哈希值。
步骤S604,采用一致性哈希算法,从主用节点哈希环中的各个虚拟点中选择虚拟点哈希值与资源哈希值相匹配的虚拟点,将选择出的虚拟点确定为目标虚拟点;具体而言,可以采用一致性哈希算法将资源哈希值映射到主用节点哈希环,并依据一定的规则选择对应的虚拟点,如选用主用节点哈希环上,虚拟点哈希值比资源哈希值大且距离资源哈希值最近的虚拟点哈希值与该资源哈希值匹配,将该虚拟点哈希值对应的虚拟点作为目标虚拟点。
步骤S606,查询主用节点的目标虚拟点对应的节点的历史使用记录。
步骤S608,如果历史使用记录指示主用节点的目标虚拟点对应的节点不可用,执行步骤S610;如果可用,执行步骤S620。
步骤S610,将主用节点哈希环中,节点不可用的虚拟点删除;
步骤S612,采用一致性哈希算法,从备用节点哈希环中的各个虚拟点中选择虚拟点哈希值与资源哈希值相匹配的虚拟点,将选择出的虚拟点确定更新的目标虚拟点;该过程与从主用节点哈希环中确定目标虚拟点的过程相似,不再赘述。
步骤S614,查询备用节点的目标虚拟点对应的节点的历史使用记录。
步骤S616,如果历史使用记录指示备用节点的目标虚拟点对应的节点不可用,执行步骤S618;如果可用,执行步骤S620。
步骤S618,将备用节点哈希环中,节点不可用的虚拟点删除;执行步骤S604;当选中的备用节点哈希环的目标虚拟点对应的节点不可用时,将备用节点哈希环中,该不可用节点对应的虚拟点均删除,并再次从主备用节点哈希环中选取目标虚拟节点,其过程如步骤S604所述。
步骤S620,从目标虚拟点对应的节点获取资源域名对应的资源。
上述一种资源获取方法,在从节点设备中查询不到用户待访问的资源域名对应的资源时,获取该资源域名对应的节点哈希环;当节点哈希环包括朱勇节点哈希环及备用节点哈希环时,首先从主用节点哈希环中根据资源域名对应的资源选取目标虚拟点,并通过历史使用记录确定该目标虚拟点是否可用,如果不可用,再从备用节点哈希环中根据资源域名对应的资源选用目标虚拟点,直至获得可用的目标虚拟节点,并从目标虚拟点对应的节点获取资源域名对应的资源。该方式中,可以通过从主用节点哈希环或备用节点哈希环中选取目标虚拟点的方式,从与该资源域名相关联的多个节点中选取可用的节点,从而获取该资源域名对应的资源,提高了边缘节点在回源过程中获取资源的命中率,降低了CDN网络带宽的浪费。
本发明实施例还提供另一种资源获取方法,该方法在上述实施例方法的基础上实现。该方法应用于CND的节点设备;如图7所示,CND的节点设备包括Linux虚拟服务器(LVS)及多个缓存设备(图7中以包括两个缓存设备为例);每个缓存设备中包括Nginx(一种高性能的HTTP(HyperText Transfer Protocol,超文本传输协议)和反向代理web服务器)及缓存磁盘(cache)。其中,Linux虚拟服务器可以接收用户发送的资源访问请求;通过Nginx的作用最终从缓存磁盘中输出资源访问请求对应的待访问资源;在缓存设备中运行cache软件,以对存储磁盘进行管理。
相关技术中,如果从当前节点设备(边缘节点或中层节点)中无法获取到资源访问请求对应的待访问资源,向上一级节点设备(中层节点或上层节点)进行回源拉取时,在选择上一级节点设备的过程中,只考虑了上一级节点设备网络状况和水位情况,没有考虑资源在该上一级节点中是否有存储,造成对上一级节点设备的回源命中率低,同时也造成了上层节点和用户源站带宽的浪费;此外,基于上述方式,同一个资源会在所有的中层和上层节点重复存储,存储资源没有被充分利用,对存储资源造成了浪费。
本发明实施例提供的方法通过将中层和上层节点组建为若干个哈希(hash)环,在节点设备进行回源拉取(边缘节点向中层节点回源、边缘节点向上层节点回源或中层节点向上层节点回源)的过程,使用一致性哈希算法,使得对固定资源(对应于同一资源域名的资源)选择固定的中层或上层,从而提升中层节点或上层节点的命中率,缩短了中层节点和上层节点的回源请求处理时间,从而提升服务质量,降低回源带宽;同时使得中层节点和上层存储资源的重复率下降,相当于扩大了中层和上层节点的存储空间;并降低了回用户源站的带宽,相较于同一个资源,回源用户源站的次数与上层节点的个数相同,采用上述方式只会回源用户源站一次。
该方法包括以下步骤:
步骤(1),当前的节点设备中的cache软件在发起回源时,通过CDN网络内部的DNS发送的DNS SRV解析记录来获取与待获取资源对应的节点哈希环的信息;该信息中包括节点哈希环中的节点、各个节点的权重及优先级等信息。
步骤(2),将中层和上层节点组成若干个hash环,hash环中每个节点具有节点域名,权重及优先级;如将mid1,mid2,mid3,mid4,mid5,mid6这6个节点组建一个节点哈希环,该节点哈希环的名字为md5.cdn-node.com;其中,md5为通过则6个节点的节点域名+权重+优先级计算出的一个md5值,该md5值具有唯一性。各个节点的信息具体如下述表1所示:
表1
节点 域名 权重 优先级
mid1 mid1.cdn-node.com 80 0
mid2 mid2.cdn-node.com 80 0
mid3 mid3.cdn-node.com 100 0
mid4 mid4cdn-node.com 80 1
mid5 mid5.cdn-node.com 90 1
mid6 mid6.cdn-node.com 80 1
在建立哈希环的过程中,使用节点域名而不是直接使用节点IP;主要考虑节点IP的变化对缓存产生影响,而节点域名不会发生变化,所以选择节点域名作为关键字(key)。上述权重根据节点出口带宽确定,主要考虑节点出口带宽以及负载情况,可以动态调整,权重越大,被使用到的概率越大。上述优先级表明主备关系,优先级为0的是主用节点哈希环(也称为主环),其他的为备用节点哈希环(也称为备环),优先级越小表明优先级越高,同一个优先级的节点组成一个哈希环。
该节点哈希环与当前节点设备待获取资源的资源域名相关联;如将md5.cdn-node.com与www.ksyun.com相关联上,即www.ksyun.com边缘节点回源中层节点或中层节点回上层节点均可以使用md5.cdn-node.com做解析,并生成对应的DNS解析记录,结果如下:
www.ksyun.com 30IN CNAME md5.cdn-node.com;
md5.cdn-node.com 30IN SRV 0 80 80mid1.cdn-node.com;
md5.cdn-node.com 30IN SRV 0 80 80mid2.cdn-node.com;
md5.cdn-node.com 30IN SRV 0 100 80mid3.cdn-node.com;
md5.cdn-node.com 30IN SRV 1 80 80mid4.cdn-node.com;
md5.cdn-node.com 30IN SRV 1 90 80mid5.cdn-node.com;
md5.cdn-node.com 30IN SRV 1 80 80mid6.cdn-node.com;
其中,SRV格式为:domain ttl IN SRV proirity weight port host。
在组成节点哈希环的过程中,遵循以下规则:首先,同一个优先级的节点组成1个hash环;然后,节点权重体现为hash环上虚拟点(也称为虚拟节点)个数,虚拟点个数等于权重乘以10,10为认为设置的倍数;其中,根据节点域名+虚拟点下标计算出此虚拟节点的哈希值。
根据该规则建立的节点哈希环示意图如图8所示,mid1’1、mid1’2、mid1’3、mid1’4分别为mid1的虚拟点;mid2’1、mid2’2、mid2’3、mid2’4分别为mid2的虚拟点;mid3’1、mid3’2、mid3’3、mid3’4、mid3’5分别为mid3的虚拟点;由于该图中位置有限,图上仅显示了部分虚拟节点,没有全部显示。
步骤(3),hash环创建完成后,cache软件会根据本次回源请求的URL(相当于资源域名对应的资源)计算一个哈希值,根据一致性哈希值,在步骤(2)创建的哈希环上寻找1个节点,如选择mid2。
步骤(4),如果历史使用记录指示mid2节点不可用,则去备用节点哈希环上查找节点,如mid4。
步骤(5),如果历史使用记录指示mid4节点也不可用,则按照一致性哈希算法,摘掉不可用的节点,直至选择出一个可用节点位置。
步骤(6),cache软件再次向指定DNS服务器发起DNS解析,获取所选节点对应的IP列表,并随机选择一个可用IP进行回源。
上述资源获取方法,选择节点域名作为哈希算法的关键词,可以解决一个节点有多个IP或节点IP变化的问题,节点IP发生变化不影响hash结果;并使用SRV记录的方式传递哈希环信息;在节点哈希环不发生变化时,同一个资源可以只在节点哈希环的一个节点上存储,此节点哈希环的所有边缘节点都会访问此节点,提升命中率;并且在节点哈希环发生变化时,根据一致性哈希算法,只有发生变化的部分会受到影响,其他未变化部分不受影响,提高了服务的稳定性。
上述方式提高了边缘节点向中层或上层节点获得资源的命中率;由于使用了哈希(hash)回源,不同的边缘节点回源获取同一个资源时,都会回到同一个中层或上层节点,所以提升了中层或上层节点获取资源的命中率;同时,这种方法导致不同的资源只在同一个节点存储,相当于扩充了中上层的存储空间。
对应于上述资源获取方法实施例,本发明实施例还提供一种资源获取装置,设置于CDN网络的节点设备;如图9所示,该装置包括:
节点哈希环获取模块700,用于如果从节点设备中查询不到用户待访问的资源域名对应的资源,获取与资源域名相关联的节点哈希环;其中,节点哈希环预先根据CDN网络中与资源域名相关联的目标节点建立;目标节点预设有节点权重;节点哈希环由多个虚拟点组成,每个目标节点对应至少一个虚拟点,每个目标节点对应的虚拟点的数量与该目标节点的节点权重相关联;
目标虚拟点确定模块702,用于根据资源域名对应的资源,从节点哈希环中的虚拟点中确定目标虚拟点;
资源获取模块704,用于从目标虚拟点对应的目标节点获取资源域名对应的资源。
上述一种资源获取装置,应用于CDN网络中的节点设备;获取与资源域名相关联的节点哈希环;其中,节点哈希环预先根据CDN网络中与资源域名相关联的目标节点建立;目标节点预设有节点权重;节点哈希环由多个虚拟点组成,每个目标节点对应至少一个虚拟点,每个目标节点对应的虚拟点的数量与该目标节点的节点权重相关联;根据资源域名对应的资源,从节点哈希环中的虚拟点中确定目标虚拟点,进而从目标虚拟点对应的目标节点获取资源域名对应的资源。该方式中,无需在多个中层及上层节点中缓存待访问的资源域名对应的资源,仅需要保证在基于与资源域名相关联的目标节点建立的节点哈希环中的至少一个节点中保存该资源,当前的节点设备即可以通过该节点哈希环获取到待访问的资源域名对应的资源,提高了边缘节点在回源过程中获取资源的命中率,降低了CDN网络带宽的浪费,同时节省了CDN网络的存储资源。
在实际实现中,上述装置还包括:节点组合获取模块,用于获取与资源域名相关联的节点组合;其中,节点组合中包括CDN网络中的多个节点、以及每个节点的优先级;哈希环建立模块,用于根据每个节点的优先级,从节点组合中选择目标节点,根据目标节点建立节点哈希环。
上述节点组合以及与上述节点组合相关联的资源域名,可以保存在上述CDN网络内的DNS服务器中;进一步地,上述节点组合获取模块还用于:向CDN网络内的DNS服务器发送资源域名,以使CDN网络内的DNS服务器解析资源域名,得到并返回与资源域名相关联的节点组合的SRV格式的DNS解析记录;其中,DNS解析记录中包括节点组合中的多个节点、以及每个节点的节点权重和优先级。
通常,上述节点组合中的节点的优先级可以为多级优先级;进一步地,上述哈希环建立模块还用于:针对每级优先级,从节点组合中选择当前优先级对应的节点,根据当前优先级对应的节点建立当前优先级对应的节点哈希环。
进一步地,上述节点组合中的节点的优先级可以包括第一优先级和第二优先级;其中,第一优先级高于第二优先级;上述哈希环建立模块还用于:从节点组合中选择第一优先级对应的节点,根据第一优先级对应的节点建立主用节点哈希环;从节点组合中选择第二优先级对应的节点,根据第二优先级对应的节点建立备用节点哈希环。
在上述节点组合中的节点的优先级为多级优先级,每级优先级对应一个节点哈希环时,上述资源获取模块还用于:按照优先级从高到低的顺序,从最高优先级对应的节点哈希环中确定目标虚拟点;查询目标虚拟点对应的节点的历史使用记录,如果历史使用记录指示目标虚拟点对应的节点不可用,从下一优先级的节点哈希环中确定更新的目标虚拟点,继续执行查询目标虚拟点对应的节点的历史使用记录的步骤,直至确定出的目标虚拟点对应的节点可用。
进一步地,上述装置还包括:第一节点删除模块,用于如果历史使用记录指示目标虚拟点对应的节点不可用,将目标虚拟点对应的节点哈希环中,节点不可用的虚拟点删除;如果直至最后一级优先级的节点哈希环中确定更新的目标虚拟点后,目标虚拟点的历史使用记录指示目标虚拟点对应的节点不可用,继续执行从最高优先级对应的节点哈希环中确定目标虚拟点的步骤,直至确定出的目标虚拟点对应的节点可用。
进一步地,上述节点组合中的节点的优先级包括第一优先级和第二优先级;第一优先级对应主用节点哈希环;第二优先级对应备用节点哈希环;其中,第一优先级高于第二优先级;上述资源获取模块还用于:从主用节点哈希环中确定目标虚拟点;查询目标虚拟点对应的节点的历史使用记录,如果历史使用记录指示目标虚拟点对应的节点不可用,从备用节点哈希环中确定更新的目标虚拟点。
进一步地,上述装置还包括:第二节点删除模块,用于如果从主用节点哈希环中确定的目标虚拟点对应的节点不可用,将主用节点哈希环中,节点不可用的虚拟点删除;第三节点删除模块,用于如果从备用节点哈希环中确定更新的目标虚拟点对应的节点不可用,将备用节点哈希环中,节点不可用的虚拟点删除;继续执行从主用节点哈希环中确定目标虚拟点的步骤,直至确定出的目标虚拟点对应的节点可用。
在实际实现中,上述节点哈希环中,每个目标节点对应的虚拟点的数量为:该目标节点的节点权重乘以预设倍数;节点哈希环中的每个虚拟点设置有虚拟点哈希值;上述资源获取模块还用于:计算资源域名对应的资源的资源哈希值;采用一致性哈希算法,从节点哈希环中的各个虚拟点中选择虚拟点哈希值与资源哈希值相匹配的虚拟点,将选择出的虚拟点确定为目标虚拟点。
进一步地,上述资源获取模块还用于:向CDN网络内的DNS服务器发送目标虚拟点对应的节点的节点域名,以使CDN网络内的DNS服务器解析节点域名,得到并返回节点域名对应的IP地址列表;从IP地址列表中选择目标IP地址,通过目标IP地址获取资源域名对应的资源。
本发明实施例所提供的资源获取装置,其实现原理及产生的技术效果和前述资源获取方法实施例相同,为简要描述,资源获取装置实施例部分未提及之处,可参考前述资源获取方法实施例中相应内容。
本发明实施例还提供了一种CDN网络中的节点设备,参见图10所示,该CDN网络中的节点设备包括处理器130和存储器131,该存储器131存储有能够被处理器130执行的机器可执行指令,该处理器130执行机器可执行指令以实现资源获取方法。
进一步地,图10所示的CDN网络中的节点设备还包括总线132和通信接口133,处理器130、通信接口133和存储器131通过总线132连接。
其中,存储器131可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口133(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线132可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器130可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器130中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器130可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processing,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器131,处理器130读取存储器131中的信息,结合其硬件完成前述实施例的方法的步骤。
本发明实施例还提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,该机器可执行指令促使处理器实现上述资源获取方法,具体实现可参见方法实施例,在此不再赘述。
本发明实施例所提供的资源获取方法及装置和CDN网络中的节点设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (15)

1.一种资源获取方法,其特征在于,应用于CDN网络中的节点设备;所述方法包括:
如果从所述节点设备中查询不到用户待访问的资源域名对应的资源,获取与所述资源域名相关联的节点哈希环;
其中,所述节点哈希环预先根据CDN网络中与所述资源域名相关联的目标节点建立;所述目标节点预设有节点权重;所述节点哈希环由多个虚拟点组成,每个所述目标节点对应至少一个虚拟点,每个所述目标节点对应的虚拟点的数量与该目标节点的节点权重相关联;
根据所述资源域名对应的资源,从所述节点哈希环中的虚拟点中确定目标虚拟点;
从所述目标虚拟点对应的目标节点获取所述资源域名对应的资源。
2.根据权利要求1所述的方法,其特征在于,所述节点哈希环,具体通过下述方式建立:
获取与所述资源域名相关联的节点组合;其中,所述节点组合中包括CDN网络中的多个节点、以及每个所述节点的优先级;
根据每个所述节点的优先级,从所述节点组合中选择目标节点,根据所述目标节点建立节点哈希环。
3.根据权利要求2所述的方法,其特征在于,所述节点组合以及与所述节点组合相关联的资源域名,保存在所述CDN网络内的DNS服务器中;
所述获取与所述资源域名相关联的节点组合的步骤,包括:
向所述CDN网络内的DNS服务器发送所述资源域名,以使所述CDN网络内的DNS服务器解析所述资源域名,得到并返回与所述资源域名相关联的节点组合的SRV格式的DNS解析记录;其中,所述DNS解析记录中包括所述节点组合中的多个节点、以及每个所述节点的节点权重和优先级。
4.根据权利要求2所述的方法,其特征在于,所述节点组合中的节点的优先级为多级优先级;
所述根据每个所述节点的优先级,从所述节点组合中选择目标节点,根据所述目标节点建立节点哈希环的步骤,包括:针对每级优先级,从所述节点组合中选择当前优先级对应的节点,根据所述当前优先级对应的节点建立所述当前优先级对应的节点哈希环。
5.根据权利要求4所述的方法,其特征在于,所述节点组合中的节点的优先级包括第一优先级和第二优先级;其中,所述第一优先级高于所述第二优先级;
所述针对每级优先级,从所述节点组合中选择当前优先级对应的节点,根据所述当前优先级对应的节点建立所述当前优先级对应的节点哈希环的步骤,包括:
从所述节点组合中选择所述第一优先级对应的节点,根据所述第一优先级对应的节点建立主用节点哈希环;
从所述节点组合中选择所述第二优先级对应的节点,根据所述第二优先级对应的节点建立备用节点哈希环。
6.根据权利要求1所述的方法,其特征在于,所述节点组合中的节点的优先级为多级优先级;每级优先级对应一个节点哈希环;
从所述节点哈希环中的虚拟点中确定目标虚拟点的步骤,包括:
按照所述优先级从高到低的顺序,从最高优先级对应的节点哈希环中确定目标虚拟点;
查询所述目标虚拟点对应的节点的历史使用记录,如果所述历史使用记录指示所述目标虚拟点对应的节点不可用,从下一优先级的节点哈希环中确定更新的目标虚拟点,继续执行查询所述目标虚拟点对应的节点的历史使用记录的步骤,直至确定出的目标虚拟点对应的节点可用。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
如果所述历史使用记录指示所述目标虚拟点对应的节点不可用,将所述目标虚拟点对应的节点哈希环中,节点不可用的虚拟点删除;
如果直至最后一级优先级的节点哈希环中确定更新的目标虚拟点后,所述目标虚拟点的历史使用记录指示所述目标虚拟点对应的节点不可用,继续执行从最高优先级对应的节点哈希环中确定目标虚拟点的步骤,直至确定出的目标虚拟点对应的节点可用。
8.根据权利要求2所述的方法,其特征在于,所述节点组合中的节点的优先级包括第一优先级和第二优先级;所述第一优先级对应主用节点哈希环;所述第二优先级对应备用节点哈希环;其中,所述第一优先级高于所述第二优先级;
从所述节点哈希环中的虚拟点中确定目标虚拟点的步骤,包括:
从所述主用节点哈希环中确定目标虚拟点;
查询所述目标虚拟点对应的节点的历史使用记录,如果所述历史使用记录指示所述目标虚拟点对应的节点不可用,从所述备用节点哈希环中确定更新的目标虚拟点。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
如果从所述主用节点哈希环中确定的目标虚拟点对应的节点不可用,将所述主用节点哈希环中,节点不可用的虚拟点删除;
如果从所述备用节点哈希环中确定更新的目标虚拟点对应的节点不可用,将所述备用节点哈希环中,节点不可用的虚拟点删除;继续执行从所述主用节点哈希环中确定目标虚拟点的步骤,直至确定出的目标虚拟点对应的节点可用。
10.根据权利要求1所述的方法,其特征在于,所述节点哈希环中,每个所述目标节点对应的虚拟点的数量为:该目标节点的节点权重乘以预设倍数;所述节点哈希环中的每个虚拟点设置有虚拟点哈希值;
所述根据所述资源域名对应的资源,从所述节点哈希环中的虚拟点中确定目标虚拟点的步骤,包括:
计算所述资源域名对应的资源的资源哈希值;
采用一致性哈希算法,从所述节点哈希环中的各个虚拟点中选择虚拟点哈希值与所述资源哈希值相匹配的虚拟点,将选择出的虚拟点确定为目标虚拟点。
11.根据权利要求1所述的方法,其特征在于,从所述目标虚拟点对应的节点上获取所述资源域名对应的资源的步骤,包括:
向所述CDN网络内的DNS服务器发送所述目标虚拟点对应的节点的节点域名,以使所述CDN网络内的DNS服务器解析所述节点域名,得到并返回所述节点域名对应的IP地址列表;
从所述IP地址列表中选择目标IP地址,通过所述目标IP地址获取所述资源域名对应的资源。
12.一种资源获取装置,其特征在于,设置于CDN网络中的节点设备;所述装置包括:
节点哈希环获取模块,用于如果从所述节点设备中查询不到用户待访问的资源域名对应的资源,获取与所述资源域名相关联的节点哈希环;
其中,所述节点哈希环预先根据CDN网络中与所述资源域名相关联的目标节点建立;所述目标节点预设有节点权重;所述节点哈希环由多个虚拟点组成,每个所述目标节点对应至少一个虚拟点,每个所述目标节点对应的虚拟点的数量与该目标节点的节点权重相关联;
目标虚拟点确定模块,用于根据所述资源域名对应的资源,从所述节点哈希环中的虚拟点中确定目标虚拟点;
资源获取模块,用于从所述目标虚拟点对应的目标节点获取所述资源域名对应的资源。
13.根据权利要求12所述的装置,其特征在于,所述节点哈希环,具体通过下述方式建立:
获取与所述资源域名相关联的节点组合;其中,所述节点组合中包括CDN网络中的多个节点、以及每个所述节点的优先级;
根据每个所述节点的优先级,从所述节点组合中选择目标节点,根据所述目标节点建立节点哈希环。
14.一种CDN网络中的节点设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求1至11任一项所述的方法。
15.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现权利要求1至11任一项所述的方法。
CN201911425952.7A 2019-12-31 2019-12-31 资源获取方法、装置及cdn网络中的节点设备 Active CN113132443B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201911425952.7A CN113132443B (zh) 2019-12-31 2019-12-31 资源获取方法、装置及cdn网络中的节点设备
PCT/CN2020/134229 WO2021135835A1 (zh) 2019-12-31 2020-12-07 资源获取方法、装置及cdn网络中的节点设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911425952.7A CN113132443B (zh) 2019-12-31 2019-12-31 资源获取方法、装置及cdn网络中的节点设备

Publications (2)

Publication Number Publication Date
CN113132443A CN113132443A (zh) 2021-07-16
CN113132443B true CN113132443B (zh) 2022-06-07

Family

ID=76686424

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911425952.7A Active CN113132443B (zh) 2019-12-31 2019-12-31 资源获取方法、装置及cdn网络中的节点设备

Country Status (2)

Country Link
CN (1) CN113132443B (zh)
WO (1) WO2021135835A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113676514B (zh) * 2021-07-19 2023-05-02 北京奇艺世纪科技有限公司 一种文件回源方法及装置
CN113873302B (zh) * 2021-09-29 2024-04-26 北京金山云网络技术有限公司 内容分发方法、装置、存储介质和电子设备
CN114500459B (zh) * 2021-12-27 2023-10-10 天翼云科技有限公司 一种基于dns协议的数据调度方法、装置及电子设备
CN114006915B (zh) * 2022-01-04 2022-03-11 北京金山云网络技术有限公司 资源请求方法、装置、设备及计算机可读存储介质
CN114025023B (zh) * 2022-01-04 2022-05-10 北京金山云网络技术有限公司 回源方法、装置、设备及计算机可读存储介质
CN114501053B (zh) * 2022-02-07 2023-10-20 上海哔哩哔哩科技有限公司 直播流获取方法及装置
CN114900562B (zh) * 2022-05-09 2023-07-21 北京百度网讯科技有限公司 一种资源获取方法、装置、电子设备和存储介质
CN115022177B (zh) * 2022-06-08 2023-10-24 阿里巴巴(中国)有限公司 Cdn系统、回源方法、cdn节点及存储介质
CN115473857B (zh) * 2022-09-14 2023-12-15 北京奇艺世纪科技有限公司 一种资源分发方法、装置、系统、电子设备及存储介质
CN116090803B (zh) * 2023-04-13 2023-06-27 北京徐工汉云技术有限公司 矿车调度方法、装置、电子设备和存储介质
CN117295199B (zh) * 2023-11-14 2024-06-25 深圳市铭灏天智能照明设备有限公司 运用边缘侧计算的物联网车库照明系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104202362A (zh) * 2014-08-14 2014-12-10 上海帝联信息科技股份有限公司 负载均衡系统及其内容分发方法和装置、负载均衡器
CN106790324A (zh) * 2015-11-20 2017-05-31 华为技术有限公司 内容分发方法、虚拟服务器管理方法、云平台和系统
CN110290196A (zh) * 2019-06-20 2019-09-27 网宿科技股份有限公司 一种内容分发方法及装置
CN110401657A (zh) * 2019-07-24 2019-11-01 网宿科技股份有限公司 一种访问日志的处理方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101998144B (zh) * 2010-11-17 2014-03-12 中兴通讯股份有限公司南京分公司 内容管理方法及系统
CN103078804B (zh) * 2012-12-28 2015-07-22 福建星网锐捷网络有限公司 等价多路径表处理方法、装置及网络设备
US10091111B2 (en) * 2014-12-31 2018-10-02 Vidscale Services, Inc. Methods and systems for an end-to-end solution to deliver content in a network
CN106502784A (zh) * 2016-09-28 2017-03-15 杭州电子科技大学 一种cdn网络内容评价模型及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104202362A (zh) * 2014-08-14 2014-12-10 上海帝联信息科技股份有限公司 负载均衡系统及其内容分发方法和装置、负载均衡器
CN106790324A (zh) * 2015-11-20 2017-05-31 华为技术有限公司 内容分发方法、虚拟服务器管理方法、云平台和系统
CN110290196A (zh) * 2019-06-20 2019-09-27 网宿科技股份有限公司 一种内容分发方法及装置
CN110401657A (zh) * 2019-07-24 2019-11-01 网宿科技股份有限公司 一种访问日志的处理方法及装置

Also Published As

Publication number Publication date
CN113132443A (zh) 2021-07-16
WO2021135835A1 (zh) 2021-07-08

Similar Documents

Publication Publication Date Title
CN113132443B (zh) 资源获取方法、装置及cdn网络中的节点设备
US11811657B2 (en) Updating routing information based on client location
CA2741895C (en) Request routing and updating routing information utilizing client location information
JP5828760B2 (ja) キャッシュを最適化するための方法とシステム
US8713156B2 (en) Request routing based on class
JP5646451B2 (ja) コンテンツ管理するための方法とシステム
CN114846462A (zh) 使用图数据结构的资产搜索发现系统
US11546447B2 (en) Systems and methods for processing requests for content of a content distribution network
JP2011517193A (ja) ルーティングをリクエストするための方法とシステム
US11805093B2 (en) Systems and methods for processing requests for content of a content distribution network
CN113497817A (zh) 流量调度方法、装置、cdn网络的边缘节点及服务器
CN109495525B (zh) 网络组件、解析内容标识的方法和计算机可读存储介质
CN113411364B (zh) 资源获取方法、装置及服务器
CN117319347A (zh) 一种基于图的Fast Flux域名检测方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant