CN110290196B - 一种内容分发方法及装置 - Google Patents
一种内容分发方法及装置 Download PDFInfo
- Publication number
- CN110290196B CN110290196B CN201910538059.9A CN201910538059A CN110290196B CN 110290196 B CN110290196 B CN 110290196B CN 201910538059 A CN201910538059 A CN 201910538059A CN 110290196 B CN110290196 B CN 110290196B
- Authority
- CN
- China
- Prior art keywords
- cache group
- cache
- application
- latest
- access 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种内容分发方法及装置,应用于通信技术领域,用以解决因中转服务集群变更出现大量回源问题。具体为:边缘缓存服务器在访问请求对应的应用的缓存组发生改变时,获取最新缓存组标识和历史缓存组标识,将历史缓存组标识携带在访问请求中发送至最新缓存组标识对应的最新缓存组,最新缓存组确定未缓存有该访问请求对应的访问内容时,将该访问请求发送至历史缓存组标识对应的历史缓存组,从历史缓存组中获取访问内容,从而实现了访问请求的两次分发,提高了获取访问内容的命中率,避免了因中转服务集群变更出现大量回源问题。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种内容分发方法及装置。
背景技术
内容分发网络(Content Delivery Network,CDN)系统是一种新型的网络内容服务系统,其基本思路是尽可能地避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。
参阅图1所示,CDN系统主要包括应用客户端、客户源站服务器、域名系统(DomainName System,DNS)服务器、边缘服务集群和中转服务集群。其中,边缘服务集群是由多个边缘缓存服务器构建而成;中转服务集群是由多个缓存组构建而成的分布式集群。
实际应用中,当用户通过应用客户端发起访问请求时,DNS服务器会根据用户发起的访问请求,解析出边缘服务集群中距离用户最近的边缘缓存服务器,并将访问请求转发至解析出的边缘缓存服务器;边缘缓存服务器接收到访问请求时,首先从本地缓存中读取该访问请求对应的访问内容,若本地未缓存有该访问请求对应的访问内容,则根据各个应用与中转服务集群包含的多个缓存组之间的关联关系,从中转服务集群中确定出该访问请求对应的缓存组,并从该访问请求对应的缓存组中,获取该访问请求对应的访问内容并返回至应用客户端,若从该访问请求对应的缓存组中未获得该访问请求对应的访问内容,则将该访问请求重新回源至客户源站服务器,以从客户源站服务器中获取该访问请求对应的访问内容,并将获得的访问内容返回至应用客户端。
实际应用中,由于中转服务集群的配置等原因,中转服务集群包含的多个缓存组经常会发生改变,从而造成各个应用与中转服务集群包含的多个缓存组之间的关联关系被打乱,进而导致边缘缓存服务器从访问请求对应的缓存组中获取该访问请求对应的访问内容时出现无缓存的情况,需要将该访问请求重新回源至客户源站服务器才能获得该访问请求对应的访问内容,这样,在中转服务集群变更期间,就会出现大量的访问请求需要重新回源,从而造成中转服务集群变更期间客户源站服务器的出口带宽突增。
发明内容
本发明实施例提供了一种内容分发方法及装置,用以解决现有技术中的内容分发方法存在的因中转服务集群的变更而出现大量的访问请求重新回源的问题。
本发明实施例提供的具体技术方案如下:
第一方面,本发明实施例提供了一种应用于边缘缓存服务器的内容分发方法,包括:
接收到DNS服务器针对应用转发的访问请求时,获取应用的缓存组集合,其中,缓存组集合包括最新缓存组集合和历史缓存组集合;
在应用的缓存组发生改变时,基于最新缓存组集合,确定访问请求对应的最新缓存组标识,并基于历史缓存组集合,确定访问请求对应的历史缓存组标识;
将携带历史缓存组标识的访问请求发送至最新缓存组标识对应的最新缓存组,并在接收到最新缓存组返回的访问内容时,将访问内容返回至应用。
在一种可能的实施方式中,获取应用的缓存组集合,包括:
根据访问请求携带的应用域名,从DNS服务器中获取应用的最新缓存组集合;以及,从本地读取上一次从DNS服务器中获得的应用的最新缓存组集合,并将上一次从DNS服务器中获得的应用的最新缓存组集合确定为应用的历史缓存组集合。
在一种可能的实施方式中,应用的缓存组发生改变的确定方式包括:
对最新缓存组集合和历史缓存组集合进行一致性检测;
若检测出最新缓存组集合和历史缓存组集合不一致,则确定应用的缓存组发生改变。
在一种可能的实施方式中,本发明实施例提供的内容分发方法还包括:
若应用的缓存组未发生改变,则基于最新缓存组集合或历史缓存组集合,确定访问请求对应的缓存组标识;
将访问请求发送至缓存组标识对应的缓存组,并在接收到缓存组返回的访问内容时,将访问内容返回至应用,其中,访问内容是缓存组在确定缓存有访问内容时从缓存中获得的,在确定未缓存有访问内容时从应用对应的客户源站服务器中获得的。
在一种可能的实施方式中,基于最新缓存组集合,确定访问请求对应的最新缓存组标识,包括:
对访问请求中携带的统一资源定位符(Uniform Resource Locator,,URL)进行哈希运算,得到访问请求对应的哈希值;
根据最新缓存组集合包含的各个缓存组标识以及各个缓存组标识的排列顺序,生成应用对应的最新哈希环;
将哈希值在最新哈希环的顺时针方向上对应的第一个缓存组标识确定为最新缓存组标识。
在一种可能的实施方式中,基于历史缓存组集合,确定访问请求对应的历史缓存组标识,包括:
对访问请求中携带的URL进行哈希运算,得到访问请求对应的哈希值;
根据历史缓存组集合包含的各个缓存组标识以及各个缓存组标识的排列顺序,生成应用对应的历史哈希环;
将哈希值在历史哈希环的顺时针方向上对应的第一个缓存组标识确定为历史缓存组标识。
在一种可能的实施方式中,在应用的缓存组发生改变时,确定访问请求对应的最新缓存组标识和历史缓存组标识之前,还包括:
获取应用的缓存组发生改变的时间与当前时间的时间差,并确定时间差不小于第一时间阈值。
在一种可能的实施方式中,本发明实施例提供的内容分发方法还包括:
确定时间差小于第一时间阈值时,基于最新缓存组集合或历史缓存组集合,获取访问请求对应的缓存组标识;
将访问请求发送至缓存组标识对应的缓存组,并在接收到缓存组返回的访问内容时,将访问内容返回至应用,其中,访问内容是缓存组在确定缓存有访问内容时从缓存中获得的,在确定未缓存有访问内容时从应用对应的客户源站服务器中获得的。
在一种可能的实施方式中,将访问内容返回至应用之后,还包括:
接收到DNS服务器针对应用再次转发的访问请求时,获取应用的缓存组发生改变的时间与当前时间的时间差;
确定时间差不小于第二时间阈值时,认为应用的热门数据已全部同步至最新缓存组中,并关闭两次分发策略,其中,两次分发策略为根据访问请求对应的最新缓存组标识和历史缓存组标识进行两次分发的策略。
在一种可能的实施方式中,本发明实施例提供的内容分发方法还包括:
确定时间差小于第二时间阈值时,认为应用的热门数据未全部同步至最新缓存组中,并继续使用两次分发策略,或者,确定应用的缓存组未再次发生改变时,继续使用两次分发策略,确定应用的缓存组再次发生改变时,关闭两次分发策略。
第二方面,本发明实施例提供了一种应用于边缘缓存服务器的内容访问装置,包括:
请求接收单元,用于接收DNS服务器针对应用转发的访问请求;
数据获取单元,用于获取应用的缓存组集合,其中,缓存组集合包括最新缓存组集合和历史缓存组集合;
标识确定单元,用于在应用的缓存组发生改变时,基于最新缓存组集合,确定访问请求对应的最新缓存组标识,并基于历史缓存组集合,确定访问请求对应的历史缓存组标识;
请求转发单元,用于将携带历史缓存组标识的访问请求发送至最新缓存组标识对应的最新缓存组;
内容获取单元,用于接收到最新缓存组返回的访问内容时,将访问内容返回至应用。
在一种可能的实施方式中,在获取应用的缓存组集合时,数据获取单元用于:
根据访问请求携带的应用域名,从DNS服务器中获取应用的最新缓存组集合;以及,从本地读取上一次从DNS服务器中获得的应用的最新缓存组集合,并将上一次从DNS服务器中获得的应用的最新缓存组集合确定为应用的历史缓存组集合。
在一种可能的实施方式中,还包括状态检测单元,其中,状态检测单元用于采用以下方式确定应用的缓存组发生改变:
对最新缓存组集合和历史缓存组集合进行一致性检测;
若检测出最新缓存组集合和历史缓存组集合不一致,则确定应用的缓存组发生改变。
在一种可能的实施方式中,标识确定单元,还用于若应用的缓存组未发生改变,则基于最新缓存组集合或历史缓存组集合,确定访问请求对应的缓存组标识;
请求转发单元,还用于将访问请求发送至缓存组标识对应的缓存组;
内容获取单元,还用于接收到缓存组返回的访问内容时,将访问内容返回至应用,其中,访问内容是缓存组在确定缓存有访问内容时从缓存中获得的,在确定未缓存有访问内容时从应用对应的客户源站服务器中获得的。
在一种可能的实施方式中,在基于最新缓存组集合,确定访问请求对应的最新缓存组标识时,标识确定单元具体用于:
对访问请求中携带的URL进行哈希运算,得到访问请求对应的哈希值;
根据最新缓存组集合包含的各个缓存组标识以及各个缓存组标识的排列顺序,生成应用对应的最新哈希环;
将哈希值在最新哈希环的顺时针方向上对应的第一个缓存组标识确定为最新缓存组标识。
在一种可能的实施方式中,在基于历史缓存组集合,确定访问请求对应的历史缓存组标识时,标识确定单元具体用于:
对访问请求中携带的URL进行哈希运算,得到访问请求对应的哈希值;
根据历史缓存组集合包含的各个缓存组标识以及各个缓存组标识的排列顺序,生成应用对应的历史哈希环;
将哈希值在历史哈希环的顺时针方向上对应的第一个缓存组标识确定为历史缓存组标识。
在一种可能的实施方式中,本发明实施例提供的内容访问装置还包括第一检测单元,其中,第一检测单元用于:
在应用的缓存组发生改变时,在标识确定单元确定访问请求对应的最新缓存组标识和历史缓存组标识之前,获取应用的缓存组发生改变的时间与当前时间的时间差,并确定时间差不小于第一时间阈值。
在一种可能的实施方式中,第一检测单元还用于:
确定时间差小于第一时间阈值时,基于最新缓存组集合或历史缓存组集合,获取访问请求对应的缓存组标识;
将访问请求发送至缓存组标识对应的缓存组,并在接收到缓存组返回的访问内容时,将访问内容返回至应用,其中,访问内容是缓存组在确定缓存有访问内容时从缓存中获得的,在确定未缓存有访问内容时从应用对应的客户源站服务器中获得的。
在一种可能的实施方式中,本发明实施例提供的内容访问装置还包括第二检测单元,其中,第二检测单元用于:
在内容获取单元将访问内容返回至应用之后,在请求接收单元接收到DNS服务器针对应用再次转发的访问请求时,获取应用的缓存组发生改变的时间与当前时间的时间差;
确定时间差不小于第二时间阈值时,认为应用的热门数据已全部同步至最新缓存组中,并关闭两次分发策略,其中,两次分发策略为根据访问请求对应的最新缓存组标识和历史缓存组标识进行两次分发的策略;
确定时间差小于第二时间阈值时,认为应用的热门数据未全部同步至最新缓存组中,并继续使用两次分发策略,或者,确定应用的缓存组未再次发生改变时,继续使用两次分发策略,确定应用的缓存组再次发生改变时,关闭两次分发策略。
第三方面,本发明实施例提供了一种边缘缓存服务器,包括:存储器、处理器和存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现本发明实施例提供的应用于边缘缓存服务器的内容分发方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机指令,该计算机指令被处理器执行时实现本发明实施例提供的应用于边缘缓存服务器的内容分发方法。
本发明实施例的有益效果如下:
本发明实施例中,在接收到DNS服务器针对应用转发的访问请求并确定该应用的缓存组发生改变时,通过获取该应用对应的最新缓存组标识和历史缓存组标识,并将历史缓存组标识携带在访问请求中发送至最新缓存组标识对应的最新缓存组,使得最新缓存组在确定未缓存有该访问请求对应的访问内容时,还可以从历史缓存组标识对应的历史缓存组中,获取该访问请求对应的访问内容,从而提高了获取访问内容的命中率,尽可能地避免了因中转服务集群的变更而需将大量访问请求重新回源的问题,有效地解决了中转服务集群变更期间客户源站服务器的出口带宽突增的问题。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例提供的CDN系统的网络架构示意图;
图2为本发明实施例提供的内容分发方法的流程示意图;
图3为本发明实施例提供的以“应用的缓存组发生改变”为应用场景时的内容分发方法的具体流程示意图;
图4A为本发明实施例提供的当在应用的缓存组中加入一个缓存组时的哈希环示意图;
图4B为本发明实施例提供的当在应用的缓存组中减少一个缓存组时的哈希环示意图;
图4C为本发明实施例提供的当在应用的缓存组中减少一个缓存组且加入一个缓存组时的哈希环示意图;
图5为本发明实施例提供的以“应用的缓存组未发生改变”为应用场景时的内容分发方法的具体流程示意图;
图6为本发明实施例提供的应用于边缘缓存服务器的内容访问装置的功能结构示意图;
图7为本发明实施例提供的缓存服务器的硬件结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本发明,首先对本申请中提及的技术用语进行说明。
1、缓存组标识,为缓存组的标识信息,可以是但不限于是:与该缓存组一一对应的用于控制该缓存组的缓存控制服务器的标识,例如,该缓存控制服务器的虚拟互联网协议地址(Virtual Internet Protocol,VIP)。
2、应用的缓存组,为从中转服务集群包含的多个缓存组中选取并配置给该应用的、用于缓存该应用相关数据的多个缓存服务器的组合,其中,一个应用对应多个缓存组。
3、应用的最新缓存组集合,为该应用的缓存组发生改变后,该应用对应的所有缓存组的缓存组标识集合,其中,该应用的最新缓存组集合可以是但不限于是:该应用对应的最新VIP集合。
实际应用中,该应用的最新缓存组集合可以采用列表的形式配置在DNS服务器中,并随该应用的缓存组变更而更新,这样,边缘缓存服务器就能够从DNS服务器中获得该应用的最新缓存组集合。
4、应用的历史缓存组集合,为上一次从DNS服务器中获得该应用的最新缓存组集合,其中,该应用的历史缓存组集合可以是但不限于是:该应用对应的历史VIP集合。
5、访问请求对应的最新缓存组标识,为根据该应用的最新缓存组集合获得的缓存组标识,可以是但不限于是:最新VIP。
6、访问请求对应的历史缓存组标识,为根据该应用的历史缓存组集合获得的缓存组标识,可以是但不限于是:历史VIP。
7、应用对应的最新哈希环,为根据该应用的最新缓存组集合包含的各个缓存组标识以及各个缓存组标识的排列顺序构建而成。
8、应用对应的历史哈希环,为根据该应用的历史缓存组集合包含的各个缓存组标识以及各个缓存组的排列顺序构建而成。
9、两次分发策略,为根据访问请求对应的最新缓存组标识和历史缓存组标识进行两次分发的策略。
10、时间阈值,为根据经验值预先设定的时间间隔,本发明实施例中,第一时间阈值小于第二时间阈值。
需要说明的是,在本文中提及的“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样的用语在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决现有技术中的内容分发方法存在的因中转服务集群的变更而出现大量的访问请求重新回源的问题,本发明实施例中,当用户针对某一应用发起访问请求时,DNS服务器根据用户发起的访问请求,解析出边缘服务集群中距离用户最近的边缘缓存服务器,并将该访问请求转发至解析出的边缘缓存服务器;边缘缓存服务器接收到DNS服务器转发的访问请求时,获取该应用的最新缓存组集合和历史缓存组集合,当根据该应用的最新缓存组集合和历史缓存组集合,确定该应用的缓存组发生改变时,基于该最新缓存组集合确定该访问请求对应的最新缓存组标识,并基于该历史缓存组集合确定该访问请求对应的历史缓存组标识,以及将携带该历史缓存组标识的访问请求发送至该最新缓存组标识对应的最新缓存组,并在接收到该最新缓存组返回的访问内容时,将该访问内容返回至该应用。这样,在接收到DNS服务器针对应用转发的访问请求并确定该应用的缓存组发生改变时,通过获取该应用对应的最新缓存组标识和历史缓存组标识,并将历史缓存组标识携带在访问请求中发送至最新缓存组标识对应的最新缓存组,使得最新缓存组在确定未缓存有该访问请求对应的访问内容时,还可以从历史缓存组标识对应的历史缓存组中获取该访问请求对应的访问内容,从而提高了获取访问内容的命中率,尽可能地避免了因中转服务集群的变更而需将大量访问请求重新回源的问题,有效地解决了中转服务集群变更期间客户源站服务器的出口带宽突增的问题。
下面结合附图对本发明实施例提供的内容分发方法进行详细描述,当然,本发明并不限于以下实施例。
参阅图2所示,本发明实施例提供的内容分发方法的流程如下:
步骤201:边缘缓存服务器接收到域名系统DNS服务器针对应用转发的访问请求时,获取该应用的缓存组集合,其中,缓存组集合包括最新缓存组集合和历史缓存组集合。
实际应用中,边缘缓存服务器在获取该应用的最新缓存组集合时,可以根据该访问请求携带的应用域名,从DNS服务器中获取该应用的最新缓存组集合,具体包括:
首先,边缘缓存服务器根据应用域名与中转域名之间的关联关系,获取与该访问请求携带的应用域名相关联的中转域名。
然后,边缘缓存服务器将获得的中转域名携带在标识获取请求中发送至DNS服务器。
其次,DNS服务器接收到标识获取请求时,根据该标识获取请求中携带的中转域名,获取与该中转域名对应的应用的最新缓存组集合。
最后,DNS服务器将该应用的最新缓存组集合返回至边缘缓存服务器,这样,边缘缓存服务器就获得了该应用对应的最新缓存组集合。
实际应用中,边缘缓存服务器在获取该访问请求对应的应用的历史缓存组集合时,可以采用但不限于以下方式:
从本地读取上一次从DNS服务器中获得的该应用对应的最新缓存组集合,并将上一次从DNS服务器中获得的该应用对应的最新缓存组集合确定为该应用对应的历史缓存组集合。
步骤202:边缘缓存服务器在该应用的缓存组发生改变时,基于最新缓存组集合,确定该访问请求对应的最新缓存组标识,并基于历史缓存组集合,确定该访问请求对应的历史缓存组标识。
实际应用中,边缘缓存服务器可以通过检测该应用的最新缓存组集合和历史缓存组集合是否一致,来确定该应用的缓存组是否发生了改变。具体的,边缘缓存服务器检测出该应用的最新缓存组集合和历史缓存组集合不一致时,可以确定该应用的缓存组发生了改变,检测出该应用的最新缓存组集合和历史缓存组集合一致时,可以确定该应用的缓存组未发生改变。
进一步的,在一种实施例中,边缘缓存服务器确定该应用的缓存组发生改变时,可以直接获取该访问请求对应的最新缓存组标识和历史缓存组标识。
实际应用中,缓存组很可能会因设备检修、异常断电等情况导致缓存服务出现异常,此种情况下,边缘缓存服务器也会检测出该应用的缓存组发生了改变,然而,这种缓存服务异常的缓存组在恢复正常后还会继续为该应用提供缓存服务,为了避免不必要的资源浪费,针对该应用可以先不采用两次分发策略。
基于此,在另一个实施例中,边缘缓存服务器确定该应用的缓存组发生改变时,获取该访问请求对应的最新缓存组标识和历史缓存组标识之前,还可以先获取该应用的缓存组发生改变的时间与当前时间的时间差,通过检测该时间差是否不小于第一时间阈值,来确定该应用的缓存组发生改变的原因,具体的,可能存在但不限于以下两种情况:
第一种情况:边缘缓存服务器确定该时间差小于第一时间阈值。
此种情况下,边缘缓存服务器可以认为该应用的缓存组发生改变的原因是缓存服务出现异常,进而可以不采用两次分发策略,而是采用以下内容分发方式进行内容分发:
首先,边缘缓存服务器基于该应用的最新缓存组集合(或历史缓存组集合),确定该访问请求对应的缓存组标识。
具体的,边缘缓存服务器可以采用但不限于以下方式:对该访问请求中携带的URL进行哈希运算,得到该访问请求对应的哈希值;根据最新缓存组集合(或历史缓存组集合)包含的各个缓存组标识以及各个缓存组标识的排列顺序,生成该应用对应的最新哈希环;将该哈希值在最新哈希环(或历史缓存组集合)的顺时针方向上对应的第一个缓存组标识确定为该访问请求对应的缓存组标识。
然后,边缘缓存服务器将该访问请求发送至该缓存组标识对应的缓存组。
实际应用中,缓存组是由与该缓存组一一对应的缓存控制服务器来控制的,基于此,边缘缓存服务器可以根据该缓存组标识,将该访问请求发送至该缓存控制服务器。
其次,缓存组接收到该访问请求时,若确定缓存有该访问请求对应的访问内容,则直接将该访问内容返回至边缘缓存服务器,若确定未缓存有该访问请求对应的访问内容,则从该应用对应的客户源站服务器中获取该访问请求对应的访问内容并返回至边缘缓存服务器。
对应的,缓存控制服务器接收到该访问请求时,可以检测自身控制的缓存组中是否缓存有该访问请求对应的访问内容,若是,则直接将该访问内容返回至边缘缓存服务器,否则,从该应用对应的客户源站服务器中获取该访问请求对应的访问内容并返回至边缘缓存服务器。
最后,边缘缓存服务器接收到缓存组返回的访问内容时,将该访问内容返回至应用。
第二种情况:边缘缓存服务器确定该时间差不小于第一时间阈值。
此种情况下,边缘缓存服务器可以认为该应用的缓存组发生改变的原因是该应用的缓存组配置更新,进而可以获取该应用的最新缓存组标识和历史缓存组标识。
实际应用中,边缘缓存服务器可以基于该应用的最新缓存组集合,确定该访问请求对应的最新缓存组标识,并基于该应用的历史缓存组集合,确定该访问请求对应的历史缓存组标识。具体的,边缘缓存服务器可以采用但不限于以下方式:
首先,边缘缓存服务器对该访问请求中携带的URL进行哈希运算,得到该访问请求对应的哈希值。
然后,边缘缓存服务器根据最新缓存组集合包含的各个缓存组标识以及各个缓存组标识的排列顺序,生成该应用对应的最新哈希环,并将该哈希值在该最新哈希环的顺时针方向上对应的第一个缓存组标识确定为最新缓存组标识。
最后,边缘缓存服务器根据历史缓存组集合包含的各个缓存组标识以及各个缓存组标识的排列顺序,生成该应用对应的历史哈希环,并将该哈希值在该历史哈希环的顺时针方向上对应的第一个缓存组标识确定为历史缓存组标识。
值得说的是,边缘缓存服务器确定该应用的缓存组未发生改变时,可以不采用两次分发策略,而是采用上述第一种情况中描述的内容分发方式进行内容分发,具体实现过程在此不再赘述。
步骤203:边缘缓存服务器将携带历史缓存组标识的访问请求发送至最新缓存组标识对应的最新缓存组。
实际应用中,最新缓存组是由与该最新缓存组一一对应的缓存控制服务器(下述称最新缓存控制服务器)来控制的,基于此,边缘缓存服务器可以根据该最新缓存组标识,将携带历史缓存组标识的访问请求发送至该最新缓存控制服务器。
进一步的,最新缓存控制服务器接收到携带历史缓存组标识的访问请求时,检测自身控制的最新缓存组中是否缓存有该访问请求对应的访问内容,若是,则直接将该访问内容返回至边缘缓存服务器;否则,从该历史缓存组标识对应的历史缓存中,获取该访问请求对应的访问内容并返回至边缘缓存服务器,其中,最新缓存控制服务器从该历史缓存组标识对应的历史缓存组中,获取该访问请求对应的访问内容,包括:
首先,最新缓存控制服务器将该访问请求发送至该历史缓存组标识对应的历史缓存组。
实际应用中,历史缓存组是由与该历史缓存组一一对应的缓存控制服务器(下述称历史缓存控制服务器)来控制的,基于此,最新缓存控制服务器可以根据该历史缓存组标识,将该访问请求发送至该历史缓存控制服务器。具体的,最新缓存控制服务器还可以将指定字段标识携带在该访问请求中后再发送至该历史缓存控制服务器。
然后,该历史缓存控制服务器接收到访问请求时,检测自身控制的历史缓存组中是否缓存有该访问请求对应的访问内容,若是,则直接将该访问内容返回至最新缓存控制服务器,否则,根据该访问请求中携带的指定字段标识,向最新缓存控制服务器返回无缓存响应。
最后,最新缓存控制服务器接收历史缓存控制服务器返回的访问内容。当然,最新缓存控制服务器若接收到历史缓存控制服务器返回的无缓存响应,则可以从该应用对应的客户源站服务器中获取该访问请求对应的访问内容。这样,最新缓存控制服务器就获得了该访问请求对应的访问内容,并且,可以将该访问请求对应的访问内容返回至边缘缓存服务器。
步骤204:边缘缓存服务器接收到最新中转缓存服务器返回的访问内容时,将该访问内容返回至应用。
本发明实施例中,边缘缓存服务器确定该应用的缓存组发生改变时,还可以通知历史缓存组将该应用的热门数据同步至该应用的最新缓存组中,进而,边缘缓存服务器在确定历史缓存组已将该应用的热门数据全部同步至该应用的最新缓存组中后,可以关闭两次分发策略。
基于此,边缘缓存服务器在将访问内容返回至该应用之后,若接收到DNS服务器针对该应用再次转发的访问请求,则可以先获取该应用的缓存组发生改变的时间与当前时间的时间差,并通过检测该时间差是否不小于第二时间阈值,来确定历史缓存组是否已将该应用的热门数据全部同步至该应用的最新缓存组中。具体的,可能存在但不限于以下两种情况:
第一种情况:边缘缓存服务器检测出该时间差不小于第二时间阈值。
此种情况下,边缘缓存服务器若可以确定该应用的热门数据已全部同步至该应用的最新缓存组中,此时,边缘缓存服务器可以关闭两次分发策略,并采用以下方式对DNS服务器再次转发的访问请求进行处理:
首先,边缘缓存服务器基于上一次从DNS服务器中获得的该应用的最新缓存组集合,确定该访问请求对应的缓存组标识,并将该访问请求发送至该缓存组标识对应的缓存组。
然后,缓存组接收到该访问请求时,若确定缓存有该访问请求对应的访问内容,则直接将该访问内容返回至边缘缓存服务器,若确定未缓存有该访问请求对应的访问内容,则从该应用对应的客户源站服务器中获取该访问请求对应的访问内容并返回至边缘缓存服务器。
最后,边缘缓存服务器接收到缓存组返回的访问内容时,将该访问内容返回至应用。
第二种情况:边缘缓存服务器检测出该时间差小于第二时间阈值。
此种情况下,边缘缓存服务器可以确定该应用的热门数据未全部同步至该应用的最新缓存组中,此时,在一种实施方式中,边缘缓存服务器可以继续使用两次分发策略,对DNS服务器再次转发的访问请求进行处理。
实际应用中,若在该应用的热门数据的同步过程中,该应用的缓存组再次发生了改变,此时,若历史缓存组依然对该应用的热门数据进行同步,边缘缓存服务器依然采用两次分发策略,对DNS服务器再次转发的访问请求进行处理,则会造成一定的资源浪费,基于此,在另一种实施方式中,为了进一步减少不必要的资源浪费,边缘缓存服务器还可以进一步检测该应用的缓存组是否再次发生改变,在检测出该应用的缓存组未再次发生改变时,再继续使用两次分发策略,对DNS服务器再次转发的访问请求进行处理,而在检测出该应用的缓存组再次发生改变时,可以关闭两次分发策略,并采用上述第一种情况中描述的方式,对DNS服务器再次转发的访问请求进行处理,以及通知历史缓存组停止对该应用的热门数据的同步。
下面以应用的缓存组发生改变为具体应用场景,对本发明实施例提供的内容分发方法作进一步详细说明。参阅图3所示,本发明实施例提供的内容分发方法的具体流程如下:
步骤301:应用客户端根据用户操作向DNS服务器发起访问请求。
步骤302:DNS服务器根据用户发起的访问请求,解析出边缘服务集群中距离用户最近的边缘缓存服务器。
步骤303:DNS服务器将该访问请求转发至解析出的边缘缓存服务器。
步骤304:边缘缓存服务器接收到DNS服务器转发的访问请求时,根据应用域名与中转域名之间的关联关系,获取与该访问请求携带的应用域名相关联的中转域名。
步骤305:边缘缓存服务器将获得的中转域名携带在标识获取请求中发送至DNS服务器。
步骤306:DNS服务器接收到标识获取请求时,根据该标识获取请求中携带的中转域名,获取与该中转域名对应的应用的最新VIP列表。
步骤307:DNS服务器将该应用的最新VIP列表返回至边缘缓存服务器。
步骤308:边缘缓存服务器接收DNS服务器返回的该应用的最新VIP列表,并从本地读取该应用的历史VIP列表。
步骤309:边缘缓存服务器检测出该应用的最新VIP列表与历史VIP列表不一致时,确定该应用的缓存组发生改变。
步骤310:边缘缓存服务器对访问请求中携带的URL进行哈希运算,得到该访问请求对应的哈希值。
步骤311:边缘缓存服务器根据该应用对应的最新VIP列表包含的各个VIP和各个VIP的排列顺序,生成该应用对应的最新哈希环,并将该访问请求对应的哈希值在该最新哈希环的顺时针方向上对应的第一个VIP确定为最新VIP。
步骤312:边缘缓存服务器根据该应用对应的历史VIP列表包含的各个VIP和各个VIP的排列顺序,生成该应用对应的历史哈希环,并将该访问请求对应的哈希值在该历史哈希环的顺时针方向上对应的第一个VIP确定为历史VIP。
例如:参阅图4A所示,假设该应用对应的最新VIP列表包含VIP_A、VIP_B、VIP_C和VIP_D,该应用对应的历史VIP列表包含VIP_A、VIP_C和VIP_D,则边缘缓存服务器可以将VIP_B确定为该应用的最新VIP,以及将VIP_C确定为该应用的历史VIP。
又如:参阅图4B所示,假设该应用对应的最新VIP列表包含VIP_A、VIP_C和VIP_D,该应用对应的历史VIP列表包含VIP_A、VIP_B、VIP_C和VIP_D,则边缘缓存服务器可以将VIP_C确定为该应用的最新VIP,以及将VIP_B确定为该应用的历史VIP。
再如:参阅图4C所示,假设该应用对应的最新VIP列表包含VIP_A、VIP_E、VIP_C和VIP_D,该应用对应的历史VIP列表包含VIP_A、VIP_B、VIP_C和VIP_D,则边缘缓存服务器可以将VIP_E确定为该应用的最新VIP,以及将VIP_B确定为该应用的历史VIP。
步骤313:边缘缓存服务器将历史VIP携带在访问请求中发送至最新VIP对应的最新缓存控制服务器。
步骤314:最新缓存控制服务器接收到边缘缓存服务器发送的携带有历史VIP的访问请求时,检测自身控制的缓存组中是否缓存有该访问请求对应的访问内容,若是,则执行步骤320;若否,则执行步骤315。
步骤315:最新缓存控制服务器将指定字段标识携带在访问请求中发送至该历史VIP对应的历史缓存控制服务器。
步骤316:历史缓存控制服务器接收到访问请求时,检测自身控制的缓存组中是否缓存有该访问请求对应的访问内容,若是,则执行步骤317;若否,则执行步骤318。
步骤317:历史缓存控制服务器将该访问请求对应的访问内容返回至最新缓存控制服务器。
步骤318:历史缓存控制服务器根据该访问请求中携带的指定字段标识,向最新缓存控制服务器返回无缓存响应。
步骤319:最新缓存控制服务器从该应用对应的客户源站服务器中获取该访问请求对应的访问内容。
步骤320:最新缓存控制服务器通过边缘缓存服务器将该访问请求对应的访问内容返回至应用。
下面以应用的缓存组未发生改变为具体应用场景,对本发明实施例提供的内容分发方法作进一步详细说明。参阅图5所示,本发明实施例提供的内容分发方法的具体流程如下:
步骤501:应用客户端根据用户操作向DNS服务器发起访问请求。
步骤502:DNS服务器根据用户发起的访问请求,解析出边缘服务集群中距离用户最近的边缘缓存服务器。
步骤503:DNS服务器将该访问请求转发至解析出的边缘缓存服务器。
步骤504:边缘缓存服务器接收到DNS服务器转发的访问请求时,根据应用域名与中转域名之间的关联关系,获取与该访问请求携带的应用域名相关联的中转域名。
步骤505:边缘缓存服务器将获得的中转域名携带在标识获取请求中发送至DNS服务器。
步骤506:DNS服务器接收到标识获取请求时,根据该标识获取请求中携带的中转域名,获取与该中转域名对应的应用的最新VIP列表。
步骤507:DNS服务器将该应用的最新VIP列表返回至边缘缓存服务器。
步骤508:边缘缓存服务器接收DNS服务器返回的该应用的最新VIP列表,并从本地读取该应用的历史VIP列表。
步骤509:边缘缓存服务器检测出该应用的最新VIP列表与历史VIP列表一致时,确定该应用的缓存组未发生改变。
步骤510:边缘缓存服务器对该访问请求中携带的URL进行哈希运算,得到该访问请求对应的哈希值。
步骤511:边缘缓存服务器根据该应用的最新VIP列表(或历史VIP列表)包含的各个VIP和各个VIP的排列顺序,生成该应用对应的哈希环。
步骤512:边缘缓存服务器将该访问请求对应的哈希值在该哈希环的顺时针方向上对应的第一个VIP确定为该访问请求对应的VIP。
步骤513:边缘缓存服务器将访问请求发送至该VIP对应的缓存控制服务器。
步骤514:缓存控制服务器接收到边缘缓存服务器发送的访问请求时,检测自身控制的缓存组中是否缓存有该访问请求对应的访问内容,若是,则执行步骤516;若否,则执行步骤515。
步骤515:缓存控制服务器从该应用对应的客户源站服务器中获取该访问请求对应的访问内容。
步骤516:缓存控制服务器将该访问请求对应的访问内容返回至边缘缓存服务器。
步骤517:边缘缓存服务器接收到缓存控制服务器返回的访问内容时,将该访问内容返回至应用。
基于上述实施例,本发明实施例提供了一种应用于边缘缓存服务器的内容访问装置,参阅图6所示,本发明示例性实施方式的内容访问装置600至少包括:
请求接收单元601,用于接收DNS服务器针对应用转发的访问请求;
数据获取单元602,用于获取应用的缓存组集合,其中,缓存组集合包括最新缓存组集合和历史缓存组集合;
标识确定单元603,用于在应用的缓存组发生改变时,基于最新缓存组集合,确定访问请求对应的最新缓存组标识,并基于历史缓存组集合,确定访问请求对应的历史缓存组标识;
请求转发单元604,用于将携带历史缓存组标识的访问请求发送至最新缓存组标识对应的最新缓存组;
内容获取单元605,用于接收到最新缓存组返回的访问内容时,将访问内容返回至应用。
在一种可能的实施方式中,在获取应用的缓存组集合时,数据获取单元602用于:
根据访问请求携带的应用域名,从DNS服务器中获取应用的最新缓存组集合;以及,从本地读取上一次从DNS服务器中获得的应用的最新缓存组集合,并将上一次从DNS服务器中获得的应用的最新缓存组集合确定为应用的历史缓存组集合。
在一种可能的实施方式中,本发明示例性实施方式的内容访问装置600还包括状态检测单元606,其中,状态检测单元606用于:
对最新缓存组集合和历史缓存组集合进行一致性检测;
若检测出最新缓存组集合和历史缓存组集合不一致,则确定应用的缓存组发生改变。
在一种可能的实施方式中,标识确定单元603,还用于若应用的缓存组未发生改变,则基于最新缓存组集合或历史缓存组集合,确定访问请求对应的缓存组标识;
请求转发单元604,还用于将访问请求发送至缓存组标识对应的缓存组;
内容获取单元605,还用于接收到缓存组返回的访问内容时,将访问内容返回至应用,其中,访问内容是缓存组在确定缓存有访问内容时从缓存中获得的,在确定未缓存有访问内容时从应用对应的客户源站服务器中获得的。
在一种可能的实施方式中,在基于最新缓存组集合,确定访问请求对应的最新缓存组标识时,标识确定单元603具体用于:
对访问请求中携带的URL进行哈希运算,得到访问请求对应的哈希值;
根据最新缓存组集合包含的各个缓存组标识以及各个缓存组标识的排列顺序,生成应用对应的最新哈希环;
将哈希值在最新哈希环的顺时针方向上对应的第一个缓存组标识确定为最新缓存组标识。
在一种可能的实施方式中,在基于历史缓存组集合,确定访问请求对应的历史缓存组标识时,标识确定单元603具体用于:
对访问请求中携带的URL进行哈希运算,得到访问请求对应的哈希值;
根据历史缓存组集合包含的各个缓存组标识以及各个缓存组标识的排列顺序,生成应用对应的历史哈希环;
将哈希值在历史哈希环的顺时针方向上对应的第一个缓存组标识确定为历史缓存组标识。
在一种可能的实施方式中,本发明实施例提供的内容访问装置还包括第一检测单元607,其中,第一检测单元607用于:
在应用的缓存组发生改变时,在标识确定单元603确定访问请求对应的最新缓存组标识和历史缓存组标识之前,获取应用的缓存组发生改变的时间与当前时间的时间差,并确定时间差不小于第一时间阈值。
在一种可能的实施方式中,第一检测单元607还用于:
确定时间差小于第一时间阈值时,基于最新缓存组集合或历史缓存组集合,获取访问请求对应的缓存组标识;
将访问请求发送至缓存组标识对应的缓存组,并在接收到缓存组返回的访问内容时,将访问内容返回至应用,其中,访问内容是缓存组在确定缓存有访问内容时从缓存中获得的,在确定未缓存有访问内容时从应用对应的客户源站服务器中获得的。
在一种可能的实施方式中,本发明实施例提供的内容访问装置还包括第二检测单元608,其中,第二检测单元608用于:
在内容获取单元605将访问内容返回至应用之后,在请求接收单元601接收到DNS服务器针对应用再次转发的访问请求时,获取应用的缓存组发生改变的时间与当前时间的时间差;
确定时间差不小于第二时间阈值时,认为应用的热门数据已全部同步至最新缓存组中,并关闭两次分发策略,其中,两次分发策略为根据访问请求对应的最新缓存组标识和历史缓存组标识进行两次分发的策略;
确定时间差小于第二时间阈值时,认为应用的热门数据未全部同步至最新缓存组中,并继续使用两次分发策略,或者,确定应用的缓存组未再次发生改变时,继续使用两次分发策略,确定应用的缓存组再次发生改变时,关闭两次分发策略。
需要说明的是,由于本发明示例性实施方式的内容分发装置600解决技术问题的原理与本发明示例性实施方式的应用于边缘缓存服务器的内容分发方法相似,因此,本发明示例性实施方式的内容分发装置600的实施可以参见本发明示例性实施方式的应用于边缘缓存服务器的内容分发方法的实施,重复之处不再赘述。
在介绍了本发明示例性实施方式的内容分发方法和装置之后,接下来,对本发明实施例提供的边缘缓存服务器进行简单介绍。
参阅图7所示,本发明示例性实施方式的边缘缓存服务器700至少包括:处理器71、存储器72和存储在存储器72上并可在处理器71上运行的计算机程序,其中,处理器71执行计算机程序时实现本发明实施例提供的应用于边缘缓存服务器的内容分发方法。
需要说明的是,图7所示的边缘缓存服务器700仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
本发明示例性实施方式的边缘缓存服务器700还可以包括连接不同组件(包括处理器71和存储器72)的总线73。其中,总线73表示几类总线结构中的一种或多种,包括存储器总线、外围总线、局域总线等。
存储器72可以包括易失性存储器形式的可读介质,例如随机存储器(RandomAccess Memory,RAM)721和/或高速缓存存储器722,还可以进一步包括只读存储器(ReadOnly Memory,ROM)723。
存储器72还可以包括具有一组(至少一个)程序模块724的程序工具725,程序模块724包括但不限于:操作子系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
边缘缓存服务器700也可以与一个或多个外部设备74(例如键盘、遥控器等)通信,还可以与一个或者多个使得用户能与边缘缓存服务器700交互的设备通信(例如手机、电脑等),和/或,与使得边缘缓存服务器700与一个或多个其它边缘缓存服务器700进行通信的任何设备(例如路由器、调制解调器等)通信。这种通信可以通过输入/输出(Input/Output,I/O)接口75进行。并且,边缘缓存服务器700还可以通过网络适配器46与一个或者多个网络(例如局域网(Local Area Network,LAN),广域网(Wide Area Network,WAN)和/或公共网络,例如因特网)通信。如图7所示,网络适配器76通过总线73与边缘缓存服务器700的其它模块通信。应当理解,尽管图7中未示出,可以结合边缘缓存服务器700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、磁盘阵列(Redundant Arrays of Independent Disks,RAID)子系统、磁带驱动器以及数据备份存储子系统等。
下面对本发明实施例提供的计算机可读存储介质进行介绍。本发明实施例提供的计算机可读存储介质存储有计算机指令,该计算机指令被处理器执行时实现本发明示例性实施方式的应用于边缘缓存服务器的内容分发方法。具体地,该可执行程序可以内置在边缘缓存服务器700中,这样,边缘缓存服务器700就可以通过执行内置的可执行程序实现本发明示例性实施方式的应用于边缘缓存服务器的内容分发方法。
此外,本发明示例性实施方式的内容分发方法还可以实现为一种程序产品,该程序产品包括程序代码,当该程序产品在边缘缓存服务器700上运行时,该程序代码用于使边缘缓存服务器700实现本发明示例性实施方式的应用于边缘缓存服务器的内容分发方法。
本发明实施例提供的程序产品可以采用一个或多个可读介质的任意组合,其中,可读介质可以是可读信号介质或者可读存储介质,而可读存储介质可以是但不限于是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合,具体地,可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、RAM、ROM、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、光纤、便携式紧凑盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本发明实施例提供的程序产品可以采用CD-ROM并包括程序代码,还可以在计算设备上运行。然而,本发明实施例提供的程序产品不限于此,在本发明实施例中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (15)
1.一种内容分发方法,应用于边缘缓存服务器,其特征在于,包括:
接收到域名系统DNS服务器针对应用转发的访问请求时,获取所述应用的缓存组集合,其中,所述缓存组集合包括最新缓存组集合和历史缓存组集合;
在所述应用的缓存组发生改变时,基于所述最新缓存组集合,确定所述访问请求对应的最新缓存组标识,并基于所述历史缓存组集合,确定所述访问请求对应的历史缓存组标识;
将携带所述历史缓存组标识的所述访问请求发送至所述最新缓存组标识对应的最新缓存组,以使所述最新缓存组对应的最新缓存控制服务器接收到所述携带所述历史缓存组标识的所述访问请求时,检测自身控制的所述最新缓存组中是否缓存有所述访问请求对应的访问内容,若是,则直接返回所述访问请求对应的访问内容,否则,从所述历史缓存组标识对应的历史缓存组中获取所述访问请求对应的访问内容并返回;
在接收到返回的所述访问内容时,将所述访问内容返回至所述应用。
2.如权利要求1所述的内容分发方法,其特征在于,获取所述应用的缓存组集合,包括:
根据所述访问请求携带的应用域名,从所述DNS服务器中获取所述应用的最新缓存组集合;以及,
从本地读取上一次从所述DNS服务器中获得的所述应用的最新缓存组集合,并将上一次从所述DNS服务器中获得的所述应用的最新缓存组集合确定为所述应用的历史缓存组集合。
3.如权利要求1或2所述的内容分发方法,其特征在于,所述应用的缓存组发生改变的确定方式包括:
对所述最新缓存组集合和所述历史缓存组集合进行一致性检测;
若检测出所述最新缓存组集合和所述历史缓存组集合不一致,则确定所述应用的缓存组发生改变。
4.如权利要求1所述的内容分发方法,其特征在于,还包括:
若所述应用的缓存组未发生改变,则基于所述最新缓存组集合或所述历史缓存组集合,确定所述访问请求对应的缓存组标识;
将所述访问请求发送至所述缓存组标识对应的缓存组,并在接收到所述缓存组返回的访问内容时,将所述访问内容返回至所述应用,其中,所述访问内容是所述缓存组在确定缓存有所述访问内容时从缓存中获得的,在确定未缓存有所述访问内容时从所述应用对应的客户源站服务器中获得的。
5.如权利要求1所述的内容分发方法,其特征在于,基于所述最新缓存组集合,确定所述访问请求对应的最新缓存组标识,包括:
对所述访问请求中携带的统一资源定位符URL进行哈希运算,得到所述访问请求对应的哈希值;
根据所述最新缓存组集合包含的各个缓存组标识以及所述各个缓存组标识的排列顺序,生成所述应用对应的最新哈希环;
将所述哈希值在所述最新哈希环的顺时针方向上对应的第一个缓存组标识确定为所述最新缓存组标识。
6.如权利要求1所述的内容分发方法,其特征在于,基于所述历史缓存组集合,确定所述访问请求对应的历史缓存组标识,包括:
对所述访问请求中携带的统一资源定位符URL进行哈希运算,得到所述访问请求对应的哈希值;
根据所述历史缓存组集合包含的各个缓存组标识以及所述各个缓存组标识的排列顺序,生成所述应用对应的历史哈希环;
将所述哈希值在所述历史哈希环的顺时针方向上对应的第一个缓存组标识确定为所述历史缓存组标识。
7.如权利要求1、2或4-6任一项所述的内容分发方法,其特征在于,在所述应用的缓存组发生改变时,确定所述访问请求对应的最新缓存组标识和历史缓存组标识之前,还包括:
获取所述应用的缓存组发生改变的时间与当前时间的时间差,并确定所述时间差不小于第一时间阈值。
8.如权利要求7所述的内容分发方法,其特征在于,还包括:
确定所述时间差小于所述第一时间阈值时,基于所述最新缓存组集合或所述历史缓存组集合,获取所述访问请求对应的缓存组标识;
将所述访问请求发送至所述缓存组标识对应的缓存组,并在接收到所述缓存组返回的访问内容时,将所述访问内容返回至所述应用,其中,所述访问内容是所述缓存组在确定缓存有所述访问内容时从缓存中获得的,在确定未缓存有所述访问内容时从所述应用对应的客户源站服务器中获得的。
9.如权利要求1、2或4-6任一项所述的内容分发方法,其特征在于,将所述访问内容返回至所述应用之后,还包括:
接收到所述DNS服务器针对所述应用再次转发的访问请求时,获取所述应用的缓存组发生改变的时间与当前时间的时间差;
确定所述时间差不小于第二时间阈值时,认为所述应用的热门数据已全部同步至所述最新缓存组中,并关闭两次分发策略,其中,所述两次分发策略为根据所述访问请求对应的最新缓存组标识和历史缓存组标识进行两次分发的策略。
10.如权利要求9所述的内容分发方法,其特征在于,还包括:
确定所述时间差小于所述第二时间阈值时,认为所述应用的热门数据未全部同步至所述最新缓存组中,并继续使用所述两次分发策略,或者,确定所述应用的缓存组未再次发生改变时,继续使用所述两次分发策略,确定所述应用的缓存组再次发生改变时,关闭所述两次分发策略。
11.一种内容访问装置,应用于边缘缓存服务器,其特征在于,包括:
请求接收单元,用于接收域名系统DNS服务器针对应用转发的访问请求;
数据获取单元,用于获取所述应用的缓存组集合,其中,所述缓存组集合包括最新缓存组集合和历史缓存组集合;
标识确定单元,用于在所述应用的缓存组发生改变时,基于所述最新缓存组集合,确定所述访问请求对应的最新缓存组标识,并基于所述历史缓存组集合,确定所述访问请求对应的历史缓存组标识;
请求转发单元,用于将携带所述历史缓存组标识的所述访问请求发送至所述最新缓存组标识对应的最新缓存组,以使所述最新缓存组对应的最新缓存控制服务器接收到所述携带所述历史缓存组标识的所述访问请求时,检测自身控制的所述最新缓存组中是否缓存有所述访问请求对应的访问内容,若是,则直接返回所述访问请求对应的访问内容,否则,从所述历史缓存组标识对应的历史缓存组中获取所述访问请求对应的访问内容并返回;
内容获取单元,用于接收到返回的所述访问内容时,将所述访问内容返回至所述应用。
12.如权利要求11所述的内容访问装置,其特征在于,还包括第一检测单元,其中,所述第一检测单元用于:
在所述应用的缓存组发生改变时,在所述标识确定单元确定所述访问请求对应的最新缓存组标识和历史缓存组标识之前,获取所述应用的缓存组发生改变的时间与当前时间的时间差,并确定所述时间差不小于第一时间阈值。
13.如权利要求11或12所述的内容访问装置,其特征在于,还包括第二检测单元,其中,所述第二检测单元用于:
在所述内容获取单元将所述访问内容返回至所述应用之后,在所述请求接收单元接收到所述DNS服务器针对所述应用再次转发的访问请求时,获取所述应用的缓存组发生改变的时间与当前时间的时间差;
确定所述时间差不小于第二时间阈值时,认为所述应用的热门数据已全部同步至所述最新缓存组中,并关闭两次分发策略,其中,所述两次分发策略为根据所述访问请求对应的最新缓存组标识和历史缓存组标识进行两次分发的策略;
确定所述时间差小于所述第二时间阈值时,认为所述应用的热门数据未全部同步至所述最新缓存组中,并继续使用所述两次分发策略,或者,确定所述应用的缓存组未再次发生改变时,继续使用所述两次分发策略,确定所述应用的缓存组再次发生改变时,关闭所述两次分发策略。
14.一种边缘缓存服务器,其特征在于,包括:存储器、处理器和存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-10任一项所述的内容分发方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令被处理器执行时实现如权利要求1-10任一项所述的内容分发方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910538059.9A CN110290196B (zh) | 2019-06-20 | 2019-06-20 | 一种内容分发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910538059.9A CN110290196B (zh) | 2019-06-20 | 2019-06-20 | 一种内容分发方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110290196A CN110290196A (zh) | 2019-09-27 |
CN110290196B true CN110290196B (zh) | 2021-08-27 |
Family
ID=68004421
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910538059.9A Active CN110290196B (zh) | 2019-06-20 | 2019-06-20 | 一种内容分发方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110290196B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113132443B (zh) * | 2019-12-31 | 2022-06-07 | 北京金山云网络技术有限公司 | 资源获取方法、装置及cdn网络中的节点设备 |
CN111935306B (zh) * | 2020-09-11 | 2020-12-29 | 腾讯科技(深圳)有限公司 | 节点调度方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103209222A (zh) * | 2013-04-24 | 2013-07-17 | 网宿科技股份有限公司 | 内容分发网络中对重叠乱序的范围请求的处理方法及装置 |
CN106899558A (zh) * | 2015-12-21 | 2017-06-27 | 腾讯科技(深圳)有限公司 | 访问请求的处理方法和装置 |
CN109246229A (zh) * | 2018-09-28 | 2019-01-18 | 网宿科技股份有限公司 | 一种分发资源获取请求的方法和装置 |
CN109684358A (zh) * | 2017-10-18 | 2019-04-26 | 北京京东尚科信息技术有限公司 | 数据查询的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7937531B2 (en) * | 2007-02-01 | 2011-05-03 | Cisco Technology, Inc. | Regularly occurring write back scheme for cache soft error reduction |
-
2019
- 2019-06-20 CN CN201910538059.9A patent/CN110290196B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103209222A (zh) * | 2013-04-24 | 2013-07-17 | 网宿科技股份有限公司 | 内容分发网络中对重叠乱序的范围请求的处理方法及装置 |
CN106899558A (zh) * | 2015-12-21 | 2017-06-27 | 腾讯科技(深圳)有限公司 | 访问请求的处理方法和装置 |
CN109684358A (zh) * | 2017-10-18 | 2019-04-26 | 北京京东尚科信息技术有限公司 | 数据查询的方法和装置 |
CN109246229A (zh) * | 2018-09-28 | 2019-01-18 | 网宿科技股份有限公司 | 一种分发资源获取请求的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110290196A (zh) | 2019-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11445019B2 (en) | Methods, systems, and media for providing distributed database access during a network split | |
CN110417842B (zh) | 用于网关服务器的故障处理方法和装置 | |
US10505818B1 (en) | Methods for analyzing and load balancing based on server health and devices thereof | |
KR102295664B1 (ko) | 글로벌 서버 로드 밸런서 장치 및 상기 장치에서의 동적 캐쉬 유효 기간 제어 방법 | |
AU2013347972B2 (en) | Distributed caching cluster management | |
US9313299B2 (en) | Cloud edge appliances to extend cloud applications to customer premises | |
US9602614B1 (en) | Distributed caching cluster client configuration | |
US9529772B1 (en) | Distributed caching cluster configuration | |
CN111277630A (zh) | 一种路由控制方法、装置、电子设备和存储介质 | |
CN106605213B (zh) | 用于在断续的连通性的情况下进行支持的系统、相应的本地设备以及相应的云端计算平台 | |
CN104980478A (zh) | 内容分发网络中缓存共享方法、设备及系统 | |
US11163499B2 (en) | Method, apparatus and system for controlling mounting of file system | |
CN110290196B (zh) | 一种内容分发方法及装置 | |
EP4068725A1 (en) | Load balancing method and related device | |
KR20130130295A (ko) | 단말을 서버에 할당하고 단말로의 효율적인 메시징을 위한 시스템 및 방법 | |
US11444882B2 (en) | Methods for dynamically controlling transmission control protocol push functionality and devices thereof | |
US20160011929A1 (en) | Methods for facilitating high availability storage services in virtualized cloud environments and devices thereof | |
CN111162938A (zh) | 数据处理系统及方法 | |
CN116192885A (zh) | 高可用集群架构人工智能实验云平台数据处理方法及系统 | |
CN110958326B (zh) | 一种负载均衡方法、装置、系统、设备及介质 | |
CN104468767A (zh) | 一种云存储数据冲突检测方法及系统 | |
CN109510864B (zh) | 一种缓存请求的转发方法、传输方法及相关装置 | |
CN113568638A (zh) | 基于镜像仓库的电力监控系统容器化不停机发布方法 | |
CN108055305B (zh) | 一种存储扩展方法及存储扩展装置 | |
CN116996481B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |