CN114422522B - 一种缓存分发方法、装置、介质及设备 - Google Patents
一种缓存分发方法、装置、介质及设备 Download PDFInfo
- Publication number
- CN114422522B CN114422522B CN202011091007.0A CN202011091007A CN114422522B CN 114422522 B CN114422522 B CN 114422522B CN 202011091007 A CN202011091007 A CN 202011091007A CN 114422522 B CN114422522 B CN 114422522B
- Authority
- CN
- China
- Prior art keywords
- node
- resource
- type
- access request
- request
- 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
Links
- 238000009826 distribution Methods 0.000 title claims abstract description 46
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000003860 storage Methods 0.000 claims abstract description 16
- 238000004590 computer program Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 14
- 230000015654 memory Effects 0.000 claims description 10
- 238000003672 processing method Methods 0.000 abstract 1
- 230000004044 response Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000011144 upstream manufacturing Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 235000019633 pungent taste Nutrition 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本文是关于一种缓存分发方法、装置、介质及设备,应用于节点,其方法包括:接收访问请求;如访问请求为第一类请求,获取访问请求对应的资源的类型;当资源为第一类资源时,响应访问请求;当资源为第二类资源时,在本区域内指定的用于响应第二类资源的节点中确定目标节点,以使目标节点响应所述访问请求;如访问请求为第二类请求,响应访问请求。对节点和请求的资源进行分类,根据不同的节点类型和资源类型,采用不同的处理方法,节点只需回上层节点拉取对应类型的资源,资源不需要缓存在全部节点内,节省存储空间,减少带宽的消耗。
Description
技术领域
本文涉及CDN领域,尤其涉及一种缓存分发方法、装置、介质及设备。
背景技术
随着互联网行业的迅速发展,分享到互联网各平台的资源量暴增。以短视频为例,对于短视频平台来说,无法准确的预知爆款视频与冷门视频,因此在分发的时候都是采用相同的访问域名,冷热资源混杂的情况给内容分发带来了存储,带宽的浪费,同时也影响用户访问体验。
发明内容
为克服相关技术中存在的问题,本文提供一种缓存分发方法、装置、介质及设备。
根据本文的第一方面,提供一种缓存分发方法,应用于节点,包括:
接收访问请求;
如所述访问请求为第一类请求,获取所述访问请求对应的资源的类型;当所述资源为第一类资源时,响应所述访问请求;当所述资源为第二类资源时,在本区域内指定的用于响应第二类资源的节点中确定目标节点,以使所述目标节点响应所述访问请求;
如所述访问请求为第二类请求,响应所述访问请求。
缓存分发方法,还包括:
获取本区域的节点覆盖方案,确定本区域内指定的用于响应第二类资源的节点。
当本区域内指定多个用于响应第二类资源的节点时,所述在本区域内指定的用于响应第二类资源的节点中确定目标节点包括:
对所述访问请求的URL进行一致性哈希运算,根据哈希运算结果,在所述多个用于响应第二类资源的节点中确定目标节点。
当所述目标节点为当前节点时,由当前节点响应所述访问请求。
当所述目标节点为其他节点时,由当前节点将所述访问请求调度至目标节点。
所述确定所述访问请求对应的资源的类型包括:
获取所述资源在本区域各节点内被请求的次数;
如当前预设时段所述资源在各节点内被请求的总次数大于预设阈值,确定所述资源为第一类资源,如当前预设时段所述资源在各节点内被请求的总次数小于等于预设阈值,确定所述资源为第二类资源。
所述响应所述用户的访问请求包括:
查找当前节点内是否缓存有所述访问请求对应的资源;
若当前节点缓存有所述访问请求对应的资源,响应所述访问请求;否则,回上层节点获取所述访问请求对应的资源,并进行缓存。
根据本文的另一方面,提供一种缓存分发装置,包括:
请求接收模块,用于接收访问请求;
处理模块,用于如所述访问请求为第一类请求,获取所述访问请求对应的资源的类型;当所述资源为第一类资源时,响应所述访问请求;当所述资源为第二类资源时,在本区域内指定的用于响应第二类资源的节点中确定目标节点,以使所述目标节点响应所述访问请求;如所述访问请求为第二类请求,响应所述访问请求。
缓存分发装置,还包括:
覆盖方案获取模块,用于获取本区域的节点覆盖方案,确定本区域内指定的用于响应第二类资源的节点。
当本区域内指定多个用于响应第二类资源的节点时,所述处理模块还用于:
对所述访问请求的URL进行一致性哈希运算,根据哈希运算结果,在所述多个用于响应第二类资源的节点中确定目标节点。
当所述目标节点为当前节点时,由当前节点响应所述访问请求。
当所述目标节点为其他节点时,所述处理模块还用于:将所述访问请求调度至目标节点。
所述资源类型确定模块确定所述访问请求对应的资源的类型包括:
获取所述资源在本区域各节点内被请求的次数;
如当前预设时段所述资源在各节点内被请求的总次数大于预设阈值,确定所述资源为第一类资源,如当前预设时段所述资源在各节点内被请求的总次数小于等于预设阈值,确定所述资源为第二类资源。
所述响应所述用户的访问请求包括:
查找当前节点内是否缓存有所述访问请求对应的资源;
若当前节点缓存有所述访问请求对应的资源,响应所述访问请求;否则,回上层节点获取所述访问请求对应的资源,并进行缓存。
根据本文的另一方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被执行时实现上述缓存分发方法的步骤。
根据本文的另一方面,提供一种包括处理器、存储器和存储于所述存储器上的计算机程序,所述处理器执行所述计算机程序时实现上述缓存分发方法的步骤。
本文通过缓存分发方法,可以实现无需在所有节点上缓存所有资源,大大节省磁盘使用;无需所有节点都回上层节点拉取全部资源,大大节省了节点的带宽;冷门资源固定到冷门资源节点上访问,节省了回上层节点获取资源的时间消耗,部分请求的响应更快。在资源一开始为冷门资源的时候,将访问请求调度到冷门资源节点中访问,当资源由于请求数增加,变为热门资源的时候,又可以分摊到热门资源节点中,分摊了访问压力,不至于压爆某个节点。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本文。
附图说明
构成本文的一部分的附图用来提供对本文的进一步理解,本文的示意性实施例及其说明用于解释本文,并不构成对本文的不当限定。在附图中:
图1是根据一示例性实施例示出的一种缓存分发方法的流程图。
图2是根据一示例性实施例示出的一种缓存分发装置的框图。
图3是根据一示例性实施例示出的一种缓存分发装置的框图。
图4是根据一示例性实施例示出的一种计算机设备的框图。
具体实施方式
为使本文实施例的目的、技术方案和优点更加清楚,下面将结合本文实施例中的附图,对本文实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本文一部分实施例,而不是全部的实施例。基于本文中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本文保护的范围。需要说明的是,在不冲突的情况下,本文中的实施例及实施例中的特征可以相互任意组合。
传统技术中,为了灾备及调度等需要,一个区域的典型的资源覆盖一般由多个节点完成,用户访问的域名通过解析,解析出上述多个节点的IP。域名解析包括DNS解析、HTTPDNS解析或调度中心调度等方式实现。通过域名解析,使得本区域的用户可以访问到这多个节点,然而每个节点在响应用户请求的过程中,都要缓存用户所访问的资源,使得每一个节点都需要至少回上层节点请求一次资源文件。实际上,不同资源文件的访问次数和访问频率是不一样的,以短视频为例,有些短视频的热度较高,访问的人数比较多,为热门资源,而有些短视频的热度较低,访问的人数较少,为冷门资源,一般情况下,冷门资源的数量又远远多于热门资源的数量,但访问数量不多的冷门资源同样需要缓存在每个节点中,造成了存储资源的浪费。对于冷门资源,虽然访问次数比较少,但每一个节点都要向上层节点请求至少一次冷门资源,冷门资源的数量又较多,因此造成大量网络带宽的消耗。例如,某区域覆盖有3个节点,假设当前有10个资源,冷门资源7个,热门资源3个,冷门资源和热门资源的访问频率比例是1:9,即冷门资源访问1次,热门资源访问9次,假设冷门资源的访问是均匀的,且访问到的节点也是均匀的(实际业务情况也是类似的),则在300次访问中,冷门资源被访问了30次,热门资源被访问了270次。那么结果是7个冷门资源都至少在3个节点中被访问了一次以上,则3个节点都要分别缓存7个冷门资源及3个热门资源,且在之前没有缓存的情况下,每个资源文件都至少要回上层节点请求一次。每个节点都需要完整缓存一遍所有资源文件,3个节点共需要存储缓存文件30份,回上层节点获取资源30次。
图1是根据一示例性实施例示出的一种缓存分发方法的流程图。参考图1,本文提供一种缓存分发方法,应用于节点,包括:
步骤S11,接收访问请求。
步骤S12,如所述访问请求为第一类请求,获取所述访问请求对应的资源的类型;当所述资源为第一类资源时,响应所述访问请求;当所述资源为第二类资源时,在本区域内指定的用于响应第二类资源的节点中确定目标节点,以使所述目标节点响应所述访问请求;
如所述访问请求为第二类请求,响应所述访问请求。
本文中的缓存分发方法,先对本区域的节点进行规划,制定节点覆盖方案,根据本区域内具体的业务特点,指定某些节点为第一类节点,并使第一类节点可以被解析设备解析到,以使客户端根据域名解析结果,向第一类节点发送访问请求。第一类节点用于接收第一类请求。第一类请求为客户端根据域名解析结果发送的请求。指定某些节点为第二类节点,用于接收第二类请求。第二类请求为其他节点服务器根据调度规则,对请求进行调度后,发送到目标服务器的请求。
第一类节点的集合与第二类节点的集合,既可以相交,也可以不相交,还可以为包含或者被包含。例如,本区域有5个节点,分别为节点1、节点2、节点3、节点4、节点5,可以指定节点1、节点2、节点3、节点4为第一类节点,节点5为第二类节点;或者,指定节点1、节点2、节点3、节点4为第一类节点,节点4、节点5为第二类节点;或者指定节点1、节点2、节点3、节点4、节点5为第一类节点,节点4、节点5为第二类节点。如何划分节点类型,需要根据本区域的特点、节点提供的服务类型等综合考虑。
节点覆盖方案,可以存储在专用设备上,也可以存储在某一节点中,本文不做限制。
由于资源文件被访问的频次不同,有些资源被频繁访问,访问热度高。有些资源被偶尔访问,访问热度低。因此本文根据访问热度,将访问次数高的资源划分为第一类资源,将访问次数低的资源划分为第二类资源。为了实施本文中的缓存分发方法,由指定的第二类节点响应第二类资源的请求。
在本实施例中,步骤S11,节点接收访问请求。对于访问请求,可以是客户端通过域名解析获取当前节点地址后,将请求发送至当前节点。也可以是由其他节点服务器根据调度规则,对收到的访问请求进一步地调度,将访问请求调度至当前节点。由此,当前节点服务器需要先确定访问请求的类型。例如,当访问请求是客户端通过域名解析获取当前节点服务器地址后发送的,该访问请求为原始请求,请求的URL具有特定的格式,这类访问请求为第一类请求。当访问请求是其他服务器通过内部调度规则将原始请求调度至当前服务器的请求,在其他服务器对原始请求进行调度时,可以将原始请求的URL,客户端地址发送至当前节点服务器,其请求的格式与原始请求不同;也可以将目标节点的地址响应给客户端,以使客户端向当前节点发送请求,在向客户端进行响应的同时,可以在响应信息中添加设定的特征码,客户端再根据协议或约定的规则,访问目标服务器时携带该特征码,便于当前节点通过特征码进行判断。特征码可以添加在响应的URL中,也可以添加在响应头中,具体实施方式,本文不做限制。这类访问请求为第二类请求。
如果访问请求为第一类请求,根据覆盖方案,第一类节点用于接收第一类请求,说明当前节点为第一类节点。当前节点进一步获取访问请求对应的资源的类型。当资源为第一类资源时,由当前节点响应该访问请求;当资源为第二类资源时,在本区域内指定的用于响应第二类资源的节点中确定目标节点,以使目标节点响应所述访问请求。从而使得热门资源的请求由第一类节点响应,而冷门资源的请求,会被第一类节点调度至指定的用于响应冷门资源的第二类节点,并由第二类节点进行响应,因此第一类节点不再响应对冷门资源的请求,不需要回源站拉取冷门资源,也不需要缓存冷门资源,从而节省带宽资源和存储资源。
在一实施例中,缓存分发方法还包括获取本区域的节点覆盖方案,确定本区域内指定的用于响应第二类资源的节点。获取节点覆盖方案可以在对访问请求进行调度的时候获取,也可以在之前进行获取,并存储在本地缓存。当第一类节点收到客户端请求后,如果获取到资源类型为第二类资源,将请求调度至第二类节点,由第二类节点来响应该访问请求,并缓存该请求对应的资源文件,避免访问热度低的资源文件缓存在全部节点中,造成存储资源的浪费。
如果访问请求为第二类请求,根据覆盖方案,第二类节点用于接收第二类请求。说明当前节点为第二类节点,该请求是其他节点通过调度规则调度至当前节点的,其他节点已经判断过该请求对应的资源的类型,并且已经确定是由当前节点来进行响应的,当前节点不再判断请求对应的资源类型,由当前节点响应该访问请求,提高响应速度。
在一实施例中,由节点响应用户的访问请求包括:
查找当前节点内是否缓存有访问请求对应的资源,若当前节点缓存有所述访问请求对应的资源,响应所述访问请求;否则,回上层节点获取所述访问请求对应的资源,并进行缓存。
例如,以某区域覆盖有3个节点为例,假设当前有10个资源,冷门资源7个,热门资源3个。冷门资源和热门资源的访问频率比例是1:9,即冷门资源访问1次,热门资源访问9次,假定冷门资源的访问是均匀的,且访问到的节点也是均匀的,则在300次访问中,冷门资源被访问了30次,热门资源被访问了270次为例。将3个节点规划为:节点1为第二类节点,节点2和节点3为第一类节点。300次访问被解析到节点2和节点3,节点2和节点3将冷门资源的访问请求调度向至节点1,因此节点2和节点3不会缓存7个冷门资源的文件,只需要回上层节点获取3个热门资源的文件,并缓存3份热门资源的文件。节点1接收了30次冷门资源的访问,并通过回源的方式获取7个冷门资源的文件,将7个冷门资源的文件存储在节点1中。由于初始阶段,无法知道哪些资源为热门资源,而对3个热门资源的访问次数是从0开始计算的,因此在初始阶段3个热门资源的访问请求被解析到节点2和节点3后,会被节点2和节点3判断为冷门资源,从而将请求调度至节点1,由节点1进行响应,因此节点1还需要回源获取3个热门资源的文件,并缓存在节点1中。
结果是3个节点共需要存储缓存文件16份文件,回上层节点获取资源16次。相比传统方法中3个节点需要存储文件30份,并回上层节点获取资源30次大大的节省了存储空间,减少了带宽消耗。
在本文提供的缓存分发方法中,对节点进行划分,划分为不同的类型,指定某些节点为第一类节点,通过相关配置,使得第一类节点的地址能够被域名解析出来,因此用户的原始请求会发送到第一类节点,第一类节点获取请求对应的资源的类型,如果该资源的访问热度高,为第一类资源,则由当前节点响应用户的访问请求,如果该资源的访问热度低,为第二类资源,将访问请求调度至指定的用于响应第二类资源的节点。从而实现第一类节点只响应访问热度高的第一类请求,第一类节点也只存储第一类资源的缓存文件,不存储第二类资源的缓存文件,从而达到节省带宽,降低存储空间的目的,并能优化部分用户访问的响应速度。
在一实施例中,当本区域内指定多个用于响应第二类资源的节点时,在本区域内指定的用于响应第二类资源的节点中确定目标节点包括:
对访问请求的URL进行一致性哈希运算,根据哈希运算结果,在多个用于响应第二类资源的节点中确定目标节点。
如果本区域有多个第二类节点,在将冷门资源的访问请求调度到第二类节点时,为了防止访问请求集中调度到某个或部分节点中,造成个别节点的载荷不均,在对访问请求进行调度时,对访问请求的URL进行一致性哈希运算,根据运算结果在第二类节点中确定目标节点,将访问请求调度到目标节点。实现访问请求的均衡调度。
在一实施例中,当目标节点为当前节点时,由当前节点响应访问请求。在实际应用中,如果某节点被规划为第一类节点,同时又被规划为第二类节点的情况下,客户端的请求被解析到该节点上,节点确定该访问请求对应的资源为第二类资源,则需要进一步获取第二类节点的列表,对请求的URL进行一致性哈希运算,在第二类节点列表中确定目标节点,如果通过计算确定的目标节点为当前节点,则由当前节点响应访问请求。如果通过计算确定的目标节点不是当前节点时,由当前节点将访问请求调度至目标节点。
在一实施例中,确定访问请求对应的资源的类型包括:
获取资源在本区域各节点内被请求的次数;
如果当前预设时段该资源在各节点内被请求的总次数大于预设阈值,确定该资源为第一类资源,如当前预设时段该资源在各节点内被请求的总次数小于等于预设阈值,确定该资源为第二类资源。
可以根据预设时段内的总请求次数,来区分第一类资源和第二类资源,例如每10分钟内,请求次数小于等于2次的资源为冷门资源,请求次数大于2次为热门资源。但由于实际应用中,资源的访问量会不断变化,例如有些资源在发布的前期,访问量比较大,成为热门资源,随着时间的推移,访问量逐渐降低,变为冷门资源。而有些资源在发布的初期,访问量很低,在某个特定阶段,访问量可能会突然提高,成为热门资源。对于以前曾经是热门资源,现在为冷门资源的资源来说,如果仍然按热门资源来处理,就会导致该资源的访问量虽然很低,却缓存在多个第一类节点中,造成存储资源的浪费。因此在本实施例中,通过当前预设时段该资源被请求的总次数来确定该资源是冷门资源还是热门资源。例如预设时段为10分钟,那么当前预设时段为当前时刻前10分钟到当前时刻的时段。当然在特殊情况下,可以将预设时段设置的很长,例如一个月或一年,此时相当于根据累计的总的访问次数来确定资源的类型。
如何区分第一类资源和第二类资源,可以根据具体的情况灵活设定,本文不做限制。
为更清晰地描述本文提供的缓存分发方法,通过具体实施例进行说明。
具体实施例1:
某区域覆盖方案包括4个节点,分别为cache-group-1,cache-group-2,cache-group-3,cache-group-4。
规划cache-group-1,cache-group-2为第二类节点,即冷门资源节点;cache-group-3,cache-group-4为第一类节点,即热门资源节点。设定冷门资源和热门资源的判别条件为当前5分钟内有请求过的资源为热门资源,否则为冷门资源。假设当前有100个资源,冷门资源和热门资源各50个,对每个节点每10分钟都请求1次所有冷门资源,每1分钟请求1次所有热门资源,针对冷门资源的请求做一致性hash计算,同一个冷门资源的多次请求只会调度到同一个冷门资源节点中。
在第1分钟的时候,当100个资源的请求到热门资源节点cache-group-3,cache-group-4的时候,由于都是第一次请求,根据判断标准,都认定为是冷门资源,热门资源节点先进行一致性哈希运算,将100个资源的请求调度到冷门资源节点cache-group-1,cache-group-2中,2个节点各接收到50个资源的请求,各缓存50个文件。
从第2分钟开始,50个热门资源由于满足热门资源的判断标准,请求到热门资源节点时,会在热门资源节点中直接响应。而50个冷门资源依然会被判断为冷门资源,请求到达热门节点后,由热门节点调度至冷门节点中响应。
综上,cache-group-1跟cache-group-2会各缓存50个资源文件,其中热门资源和冷门资源合计50个,而cache-group-3和cache-group-4则只会缓存50个热门资源。
cache-group-1及cache-group-2各回上层获取资源50次,cache-group-3,cache-group-4各回上层获取资源50次。
具体实施例2:
本区域包括3个节点,规划第一类节点(热门资源节点)为:cache-group-1,cache-group-2。
即在该区域,用户访问的域名通过解析,解析出来上面2个节点的IP,用户将访问请求发送至上述2个节点。
规划第二类节点(冷门资源节点)为:cache-group-3,即当热门资源节点判断请求对应的资源为冷门资源后,会将请求调度到该节点进行响应。
设定资源类型判断标准:请求累计超过3次的判定为第一类资源(热门资源),否则为第二类资源(冷门资源)。
当cache-group-1及cache-group-2接收到请求的时候,根据资源类型判断标准,判断此次请求的资源是冷门资源还是热门资源,若是热门资源,则直接响应请求的内容,如果是冷门资源,则将请求调度到cache-group-3。
当cache-group-3接收到请求的时候,判断接收到的请求是第一类请求(客户端原始请求)还是第二类请求(调度之后的请求),可以让cache-group-1及cache-group-2在调度的时候,在调度URL中加入特定的字符串作为标识,cache-group-3在接收到请求的时候判断是否有该标识来区分此请求是否是冷门资源的请求。在此例中,由于cache-group-3只作为冷门资源节点,可以对cache-group-3做标识,当cache-group-3接收到请求时,通过标识判断自己的角色是冷门资源节点,因为客户端原始请求会发送到热门资源节点中,而冷门资源节点只能接收调度后的请求,因此此时的请求只能是冷门资源的请求。
假设有资源共300个,300个资源的请求都会解析到cache-group-1及cache-group-2。其中有200个资源,每个只请求1次,根据资源类型判断标准为冷门资源,则200个资源的200次请求会调度到cache-group-3进行响应;另100个资源每个会请求20次,根据冷热资源判断标准,前3次请求被判断为冷资源,因此100个资源的前3次请求,共300次请求会调度至冷门节点cache-group-3进行响应,而每个资源在第4次请求开始,会被判断为热门资源,因此100个资源的后17次请求,共1700次请求会在cache-group-1及cache-group-2中进行响应。
在总共2200次请求中,有500次请求的资源会被判定为冷门资源,请求被调度到冷门资源节点中,而1700次请求会留在热门资源节点中被响应掉。
最终,cache-group-1和cache-group-2会各回上游请求100次资源文件,并缓存这100个资源,而cache-group-3会回上游请求300次资源文件,并缓存这300个资源。
具体实施例3:
本区域共有3个节点,规划第一类节点:cache-group-1。规划第二类节点:cache-group-2,cache-group-3。
设定资源类型判断标准:请求累计超过2次的判定为第一类资源,否则为第二类资源。
假设有资源共600个,其中有500个资源,每个资源只请求2次,为冷门资源;另100个资源每个会请求10次,为热门资源。
第一类节点cache-group-1接收到访问请求,其中500个冷门资源的1000次请求,由于对应的资源的请求次数小于等于2,被判定为第二类资源,并从覆盖方案中获知本区域的第二类节点为cache-group-2,cache-group-3。cache-group-1会对这1000次请求进行调度,调度前还要对请求的URL进行hash计算,确定第二类节点中的目标节点的地址。例如向客户端发送200响应信息,且在响应体内放入hash后的目标节点的地址及特定的标识,客户端在接收到响应后,判断响应体内的标识及目标节点地址,则向目标节点发起请求。而另外100个资源的前两次请求,由于累计请求次数未超过2次,判断为第二类资源,因此100个资源的前两次请求,共200次请求会被调度至第二类节点cache-group-2,cache-group-3。而这100个资源的后8次请求,共800次请求,由于资源的累计请求次数超过2次,被判断为第一类资源,因此800次请求在节点cache-group-1中进行响应。
则在总共2000次请求中,有1200次请求,由于请求的资源被判定为第二类资源,被调度到第二类节点中,而800次请求会留在第一类节点cache-group-1中被响应掉。
最终,cache-group-1会回上游请求100次,并缓存100个资源,而cache-group-2及cache-group-3会回上游请求共600次,并缓存这600个资源。由于在cache-group-1对请求进行调度时进行了hash计算,因此针对600个资源的URL计算的结果,cache-group-2及cache-group-3各回上游请求300次资源文件,且缓存300个资源文件,其中,250个为冷门资源,50个为热门资源。
通过以上实施例,本文提供的缓存分发方法,无需在所有节点上缓存所有资源,大大节省磁盘使用;无需所有节点都回上层节点取全部资源,大大节省了节点的带宽;由于冷门资源会调度到冷门资源节点上访问,节省了回上层节点获取资源的时间消耗,部分请求的响应更快。在资源一开始为冷门资源的时候调度到冷门资源节点中访问,当资源由于请求数增加,变为热门资源的时候,又可以分摊到所有热门资源节点中,分摊了访问压力,不至于压爆某个节点。
图2是根据一示例性实施例示出的一种缓存分发装置的框图。参考图2,缓存分发装置,应用于节点,包括:请求接收模块201,处理模块202。
该请求接收模块201被配置为用于接收访问请求。
该处理模块202被配置为用于如所述访问请求为第一类请求,获取访问请求对应的资源的类型;当资源为第一类资源时,响应访问请求;当资源为第二类资源时,在本区域内指定的用于响应第二类资源的节点中确定目标节点,以使目标节点响应所述访问请求;如访问请求为第二类请求,响应访问请求。
图3是根据一示例性实施例示出的一种缓存分发装置的框图。参考图3,缓存分发装置还包括:覆盖方案获取模块301。
该覆盖方案获取模块301被配置为用于获取本区域的节点覆盖方案,确定本区域内指定的用于响应第二类资源的节点。
当本区域内指定多个用于响应第二类资源的节点时,处理模块还用于:
对访问请求的URL进行一致性哈希运算,根据哈希运算结果,在多个用于响应第二类资源的节点中确定目标节点。
当目标节点为当前节点时,由当前节点响应访问请求。
当目标节点为其他节点时,处理模块还用于:将访问请求调度至目标节点。
所述资源类型确定模块确定所述访问请求对应的资源的类型包括:
获取所述资源在本区域各节点内被请求的次数;
如当前预设时段所述资源在各节点内被请求的总次数大于预设阈值,确定所述资源为第一类资源,如当前预设时段所述资源在各节点内被请求的总次数小于等于预设阈值,确定所述资源为第二类资源。
由当前节点响应所述用户的访问请求包括:
查找当前节点内是否缓存有所述访问请求对应的资源;
若当前节点缓存有所述访问请求对应的资源,响应访问请求;否则,回上层节点获取所述访问请求对应的资源,并进行缓存。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图4是根据一示例性实施例示出的一种用于缓存分发的计算机设备400的框图。例如,计算机设备400可以被提供为一服务器。参照图4,计算机设备400包括处理器401,处理器的个数可以根据需要设置为一个或者多个。计算机设备400还包括存储器402,用于存储可由处理器401的执行的指令,例如应用程序。存储器的个数可以根据需要设置一个或者多个。其存储的应用程序可以为一个或者多个。处理器401被配置为执行指令,以执行上述缓存分发方法。
本领域技术人员应明白,本文的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本文可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本文可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质,包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质等。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
本文是参照根据本文实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能重定向计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。
尽管已描述了本文的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本文范围的所有变更和修改。
显然,本领域的技术人员可以对本文进行各种改动和变型而不脱离本文的精神和范围。这样,倘若本文的这些修改和变型属于本文权利要求及其等同技术的范围之内,则本文的意图也包含这些改动和变型在内。
Claims (16)
1.一种缓存分发方法,其特征在于,应用于节点,所述节点包括第一类节点和第二类节点,所述第一类节点为可以被解析设备解析到的节点,用于接收第一类请求,所述第一类请求为客户端根据域名解析结果发送的请求;所述第二类节点用于接收第二类请求,所述第二类请求为第一类节点服务器根据调度规则进行调度后的请求,缓存分发方法包括:
接收访问请求;
如所述访问请求为第一类请求,获取所述访问请求对应的资源的类型;当所述资源为第一类资源时,响应所述访问请求;当所述资源为第二类资源时,在本区域内指定的用于响应第二类资源的节点中确定目标节点,以使所述目标节点响应所述访问请求,其中,所述第一类资源为热门资源,所述第二类资源为冷门资源,所述目标节点为第二类节点;
如所述访问请求为第二类请求,响应所述访问请求。
2.如权利要求1所述的缓存分发方法,其特征在于,还包括:
获取本区域的节点覆盖方案,确定本区域内指定的用于响应第二类资源的节点。
3.如权利要求1所述的缓存分发方法,其特征在于,当本区域内指定多个用于响应第二类资源的节点时,所述在本区域内指定的用于响应第二类资源的节点中确定目标节点包括:
对所述访问请求的URL进行一致性哈希运算,根据哈希运算结果,在所述多个用于响应第二类资源的节点中确定目标节点。
4.如权利要求1所述缓存分发方法,其特征在于,当所述目标节点为当前节点时,由当前节点响应所述访问请求。
5.如权利要求1所述的缓存分发方法,其特征在于,当所述目标节点不是当前节点时,由当前节点将所述访问请求调度至所述目标节点。
6.如权利要求1所述缓存分发方法,其特征在于,所述确定所述访问请求对应的资源的类型包括:
获取所述资源在本区域各节点内被请求的次数;
如当前预设时段所述资源在各节点内被请求的总次数大于预设阈值,确定所述资源为第一类资源,如当前预设时段所述资源在各节点内被请求的总次数小于等于预设阈值,确定所述资源为第二类资源。
7.如权利要求1所述的缓存分发方法,其特征在于,所述响应所述访问请求包括:
查找当前节点内是否缓存有所述访问请求对应的资源;
若当前节点缓存有所述访问请求对应的资源,响应所述访问请求;否则,回上层节点获取所述访问请求对应的资源,并进行缓存。
8.一种缓存分发装置,其特征在于,应用于节点,所述节点包括第一类节点和第二类节点,所述第一类节点为可以被解析设备解析到的节点,用于接收第一类请求,所述第一类请求为客户端根据域名解析结果发送的请求;所述第二类节点用于接收第二类请求,所述第二类请求为第一类节点服务器根据调度规则进行调度后的请求,缓存分发装置包括:
请求接收模块,用于接收访问请求;
处理模块,用于如所述访问请求为第一类请求,获取所述访问请求对应的资源的类型;当所述资源为第一类资源时,响应所述访问请求;当所述资源为第二类资源时,在本区域内指定的用于响应第二类资源的节点中确定目标节点,以使所述目标节点响应所述访问请求;如所述访问请求为第二类请求,响应所述访问请求,其中,所述第一类资源为热门资源,所述第二类资源为冷门资源,所述目标节点为第二类节点。
9.如权利要求8所述的缓存分发装置,其特征在于,还包括:
覆盖方案获取模块,用于获取本区域的节点覆盖方案,确定本区域内指定的用于响应第二类资源的节点。
10.如权利要求8所述的缓存分发装置,其特征在于,当本区域内指定多个用于响应第二类资源的节点时,所述处理模块还用于:
对所述访问请求的URL进行一致性哈希运算,根据哈希运算结果,在所述多个用于响应第二类资源的节点中确定目标节点。
11.如权利要求8所述的缓存分发装置,其特征在于,当所述目标节点为当前节点时,由当前节点响应所述访问请求。
12.如权利要求8所述的缓存分发装置,其特征在于,当所述目标节点为其他节点时,所述处理模块还用于:将所述访问请求调度至目标节点。
13.如权利要求8所述的缓存分发装置,其特征在于,所述资源类型确定模块确定所述访问请求对应的资源的类型包括:
获取所述资源在本区域各节点内被请求的次数;
如当前预设时段所述资源在各节点内被请求的总次数大于预设阈值,确定所述资源为第一类资源,如当前预设时段所述资源在各节点内被请求的总次数小于等于预设阈值,确定所述资源为第二类资源。
14.如权利要求8所述的缓存分发装置,其特征在于,所述响应所述访问请求包括:
查找当前节点内是否缓存有所述访问请求对应的资源;
若当前节点缓存有所述访问请求对应的资源,响应所述访问请求;否则,回上层节点获取所述访问请求对应的资源,并进行缓存。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被执行时实现如权利要求1-7中任意一项所述方法的步骤。
16.一种计算机设备,包括处理器、存储器和存储于所述存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7中任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011091007.0A CN114422522B (zh) | 2020-10-13 | 2020-10-13 | 一种缓存分发方法、装置、介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011091007.0A CN114422522B (zh) | 2020-10-13 | 2020-10-13 | 一种缓存分发方法、装置、介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114422522A CN114422522A (zh) | 2022-04-29 |
CN114422522B true CN114422522B (zh) | 2024-02-13 |
Family
ID=81260470
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011091007.0A Active CN114422522B (zh) | 2020-10-13 | 2020-10-13 | 一种缓存分发方法、装置、介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114422522B (zh) |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1533970A1 (en) * | 2003-11-24 | 2005-05-25 | Akamai Technologies, Inc. | Method and system for secure content delivery |
WO2011150803A1 (zh) * | 2010-09-28 | 2011-12-08 | 华为技术有限公司 | 缓存协作方法、装置及系统 |
KR20130089929A (ko) * | 2012-01-13 | 2013-08-13 | (주)판도라티비 | 캐쉬 서버, 이를 포함하는 콘텐츠 전송 서비스 장치, 및 캐쉬 서버의 동작 방법 |
CN103747047A (zh) * | 2013-12-24 | 2014-04-23 | 乐视网信息技术(北京)股份有限公司 | 一种cdn文件存储方法、文件分发控制中心及系统 |
CN104580274A (zh) * | 2013-10-12 | 2015-04-29 | 中国电信股份有限公司 | 内容分发网络中的内容置换方法与系统、节点 |
CN104702625A (zh) * | 2015-03-31 | 2015-06-10 | 北京奇艺世纪科技有限公司 | 一种cdn网络中访问请求调度方法及装置 |
WO2017020597A1 (zh) * | 2015-07-31 | 2017-02-09 | 华为技术有限公司 | 一种资源缓存方法及装置 |
CN106453461A (zh) * | 2015-08-12 | 2017-02-22 | 中兴通讯股份有限公司 | 资源缓存方法及装置 |
CN106502576A (zh) * | 2015-09-06 | 2017-03-15 | 中兴通讯股份有限公司 | 迁移策略调整方法、容量变更建议方法及装置 |
CN106657196A (zh) * | 2015-11-02 | 2017-05-10 | 华为技术有限公司 | 一种缓存内容淘汰方法及缓存装置 |
CN109672757A (zh) * | 2019-02-26 | 2019-04-23 | 北京奇艺世纪科技有限公司 | 文件访问方法及文件访问处理装置 |
CN109819039A (zh) * | 2019-01-31 | 2019-05-28 | 网宿科技股份有限公司 | 一种文件获取方法、文件存储方法、服务器及存储介质 |
CN110245313A (zh) * | 2019-05-20 | 2019-09-17 | 中国平安财产保险股份有限公司 | 基于数据分析的请求发送方法、装置及终端 |
CN110597464A (zh) * | 2019-08-21 | 2019-12-20 | 苏州浪潮智能科技有限公司 | 一种流媒体分级管理的方法及装置 |
US10623408B1 (en) * | 2012-04-02 | 2020-04-14 | Amazon Technologies, Inc. | Context sensitive object management |
CN111327622A (zh) * | 2020-02-27 | 2020-06-23 | 典基网络科技(上海)有限公司 | 一种资源调度方法及系统 |
CN111614736A (zh) * | 2020-04-30 | 2020-09-01 | 北京金山云网络技术有限公司 | 网络内容资源调度方法、域名调度服务器及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10362134B2 (en) * | 2016-08-15 | 2019-07-23 | Verizon Digital Media Services Inc. | Peer cache filling |
-
2020
- 2020-10-13 CN CN202011091007.0A patent/CN114422522B/zh active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1533970A1 (en) * | 2003-11-24 | 2005-05-25 | Akamai Technologies, Inc. | Method and system for secure content delivery |
WO2011150803A1 (zh) * | 2010-09-28 | 2011-12-08 | 华为技术有限公司 | 缓存协作方法、装置及系统 |
KR20130089929A (ko) * | 2012-01-13 | 2013-08-13 | (주)판도라티비 | 캐쉬 서버, 이를 포함하는 콘텐츠 전송 서비스 장치, 및 캐쉬 서버의 동작 방법 |
US10623408B1 (en) * | 2012-04-02 | 2020-04-14 | Amazon Technologies, Inc. | Context sensitive object management |
CN104580274A (zh) * | 2013-10-12 | 2015-04-29 | 中国电信股份有限公司 | 内容分发网络中的内容置换方法与系统、节点 |
CN103747047A (zh) * | 2013-12-24 | 2014-04-23 | 乐视网信息技术(北京)股份有限公司 | 一种cdn文件存储方法、文件分发控制中心及系统 |
CN104702625A (zh) * | 2015-03-31 | 2015-06-10 | 北京奇艺世纪科技有限公司 | 一种cdn网络中访问请求调度方法及装置 |
WO2017020597A1 (zh) * | 2015-07-31 | 2017-02-09 | 华为技术有限公司 | 一种资源缓存方法及装置 |
CN106453461A (zh) * | 2015-08-12 | 2017-02-22 | 中兴通讯股份有限公司 | 资源缓存方法及装置 |
CN106502576A (zh) * | 2015-09-06 | 2017-03-15 | 中兴通讯股份有限公司 | 迁移策略调整方法、容量变更建议方法及装置 |
CN106657196A (zh) * | 2015-11-02 | 2017-05-10 | 华为技术有限公司 | 一种缓存内容淘汰方法及缓存装置 |
CN109819039A (zh) * | 2019-01-31 | 2019-05-28 | 网宿科技股份有限公司 | 一种文件获取方法、文件存储方法、服务器及存储介质 |
CN109672757A (zh) * | 2019-02-26 | 2019-04-23 | 北京奇艺世纪科技有限公司 | 文件访问方法及文件访问处理装置 |
CN110245313A (zh) * | 2019-05-20 | 2019-09-17 | 中国平安财产保险股份有限公司 | 基于数据分析的请求发送方法、装置及终端 |
CN110597464A (zh) * | 2019-08-21 | 2019-12-20 | 苏州浪潮智能科技有限公司 | 一种流媒体分级管理的方法及装置 |
CN111327622A (zh) * | 2020-02-27 | 2020-06-23 | 典基网络科技(上海)有限公司 | 一种资源调度方法及系统 |
CN111614736A (zh) * | 2020-04-30 | 2020-09-01 | 北京金山云网络技术有限公司 | 网络内容资源调度方法、域名调度服务器及电子设备 |
Non-Patent Citations (3)
Title |
---|
CDN技术的研究与设计;李聪颖;王瑞刚;梁小江;;物联网技术;20151220(第12期);全文 * |
Deep reinforcement learning for adaptive caching in hierarchical content delivery networks;A Sadeghi et al;《IEEE》;20191231;全文 * |
内容中心网络中能耗优化的隐式协作缓存机制;伊鹏;李根;张震;;电子与信息学报;20180415(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114422522A (zh) | 2022-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109327550B (zh) | 一种访问请求的分配方法、装置、存储介质和计算机设备 | |
US9769248B1 (en) | Performance-based content delivery | |
US10027739B1 (en) | Performance-based content delivery | |
JP5646451B2 (ja) | コンテンツ管理するための方法とシステム | |
EP3667500B1 (en) | Using a container orchestration service for dynamic routing | |
US20230018743A1 (en) | Network address resolution | |
CN111614736A (zh) | 网络内容资源调度方法、域名调度服务器及电子设备 | |
CN109618003B (zh) | 一种服务器规划方法、服务器及存储介质 | |
CN106254561A (zh) | 一种网络资源文件的实时离线下载方法及系统 | |
CN112287259A (zh) | 一种冷访问回源调度系统及其处理方法 | |
CN115208955B (zh) | 一种资源请求处理的方法、装置、计算机设备及介质 | |
CN114422522B (zh) | 一种缓存分发方法、装置、介质及设备 | |
EP3579526A1 (en) | Resource file feedback method and apparatus | |
WO2021057369A1 (zh) | HttpDNS调度方法、装置、介质及设备 | |
CN112069386B (zh) | 一种请求处理方法、装置、系统、终端及服务器 | |
CN112019451B (zh) | 带宽分配方法、调试网元、本地缓存服务器及计算设备 | |
CN112311826B (zh) | 内容分发系统中访问请求的处理方法、装置及系统 | |
CN114095578B (zh) | 功能分发方法、统一调度平台、边缘节点及计算设备 | |
CN113596105A (zh) | 内容的获取方法、边缘节点及计算机可读存储介质 | |
CN113301445B (zh) | 一种内容分发网络的地址分配方法和装置 | |
CN110769020B (zh) | 一种资源请求处理方法、装置、设备及系统 | |
CN112445859A (zh) | 数据管理方法、装置和系统 | |
CN116991333B (zh) | 分布式数据存储方法、装置、电子设备及存储介质 | |
CN115412737B (zh) | 直播回源中继节点确定方法及装置 | |
CN112291103B (zh) | 网络调度方法、装置、电子设备及存储介质 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40072513 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |