具体实施方式
下面结合附图和具体实施例进一步说明本发明实施例的技术方案。
目前,电信级资源缓存系统中包括数十台缓存服务器,每个缓存服务器承载不同的资源,为数万在线用户提供服务,每台缓存服务器一般最多能够负载1000至2000用户访问。并且,某一资源只存在于一台缓存服务器上,没有热点内容处理机制,不会有多个备份资源存储于其他缓存服务器中。如图1所示,资源A、资源B缓存于缓存服务器1中,资源F、资源X缓存在缓存服务器2中,资源N、资源P、资源O缓存在缓存服务器n中,用户如果想下载资源F,只能从缓存服务器2中下载。
此外,其他服务器上由于没有备份资源,就不能为用户提供缓存,导致资源缓存系统的性能受一台服务器性能的限制,无法进行性能扩展。由于有的服务器负载过重,有的服务器负载很低,从而导致负载低的服务器利用率低,业务相对空闲的服务器无法为繁忙服务器分担负载。
为了解决上述问题,根据本发明的实施例,提供了一种资源缓存方法,图2是本发明实施例的资源缓存方法的流程图,如图2所示,根据本发明实施例的资源缓存方法包括:
步骤201,调度服务器每隔第一预定时间(例如,10秒)从数据库获取资源的访问热度值,并判断访问热度值是否达到预先设置的第一阈值,在确定访问热度值达到预先设置的第一阈值的情况下,从数据库获取缓存服务器的负载值;在本发明的实施例中,从数据库获取的缓存服务器的负载值可以不包括当前本身就缓存有该资源的缓存服务器。
步骤202,调度服务器根据访问热度值以及负载值确定复制该资源的复制缓存服务器,也就是说,调度服务器从除本身就缓存有该资源的缓存服务器之外的其他缓存服务器中选择一个复制该资源的服务器。在以下的描述中,将复制该资源的缓存服务器简称为复制缓存服务器。
步骤203,调度服务器通知复制缓存服务器从保存有该资源的缓存服务器中复制资源并缓存。
从上述处理可以看出,本发明实施例将热点资源判断机制用于缓存系统中,复制热点资源到多台缓存服务器中,以实现访问的负载分流。通过调度服务器实现各个缓存服务器之间的调度,使得多个缓存服务器共同提供服务,从而提高了缓存系统的可扩展性和资源下载的效率,能够减少系统中繁忙的缓存服务器的负载,减轻出口带宽的压力。
下面,结合附图,对本发明实施例中用户请求下载未缓存资源的情况的处理流程进行详细说明。
图3是本发明实施例的用户请求下载未缓存资源的信令流程图,如图3所示,包括如下处理:
步骤301,用户向源站服务器发送资源下载请求;
步骤302,资源缓存系统的检测服务器获取用户向源站服务器发送的资源下载请求,并向调度服务器发送资源查询请求;
步骤303,调度服务器根据资源查询请求向其数据库查询该资源是否已经缓存在资源缓存系统的缓存服务器中,并指示数据库将该资源的访问热度值+1,其中,访问热度值根据预定算法确定,例如,根据资源的下载次数及该资源每次下载的下载时间确定该资源的访问热度值;
步骤304,数据库查询该资源是否已经缓存,并更新该资源的访问热度值。由于数据库查询到该资源没有缓存,因此,向调度服务器发送未缓存响应消息;
步骤305,调度服务器接收到未缓存响应消息后,向重定向服务器转发未缓存响应消息;
步骤306,重定向服务器响应于未缓存响应消息,由于该资源未缓存在资源缓存系统中,因此,不需要进行重定向操作,用户依然从源站服务器(外网)下载该资源;
步骤307,在用户下载完成后,源站服务器向用户发送下载完成消息;随着用户下载次数的增多,资源缓存系统会将用户下载次数较多的资源下载到一台缓存服务器中,以后的用户从该缓存服务器中下载该资源;
步骤308,调度服务器向数据库查询该资源的访问热度值;
具体地,调度服务器每隔一定时间向数据库查询资源的访问热度值,在本发明实施例中,调度服务器可以查询所有资源的访问热度值,也可以查询单独查询当前某个资源的访问热度值,其中,访问热度值包括:下载次数及下载时间;
步骤309,数据库返回该资源的访问热度值,该访问热度值可以包括所查询资源的下载次数及下载时间等信息;
步骤310,调度服务器根据下载次数及下载时间计算单位时间内所查询资源的下载次数,并根据单位时间内所查询资源的下载次数判断相应的访问热度值是否达到阈值,也就是说,判断用户是否从缓存有该资源的缓存服务器中大量下载该资源,在下面的描述中,将上述情况下的资源称为热点资源,如果调度服务器判断访问热度值未达到预先设置的阈值,则不进行任何操作;如果确定访问热度值达到阈值,则向数据库查询各缓存服务器(不包括已缓存该资源的缓存服务器)的负载值;其中,所有缓存服务器每隔一定时间就会将自己的负载值写入数据库,以供调度服务器的查询,例如,所有缓存服务器每隔5秒将自己的负载值写入数据库;
步骤311,数据库向调度服务器返回各缓存服务器的负载值;
步骤312,调度服务器根据该资源的访问热度值以及各缓存服务器的负载值确定复制该资源的复制缓存服务器;进一步地,调度服务器可以根据访问热度值和负载值选择负载较低的服务器复制该资源;
具体地,在步骤312中,调度服务器选择负载较低的服务器具体包括如下处理:1、调度服务器首先根据该资源的访问热度值确定单位时间内该资源的下载次数,并根据单位时间内该资源的下载次数确定单位时间内该资源下载次数的级别;2、调度服务器根据负载值将除已缓存该资源的缓存服务器之外所有缓存服务器顺序排序,得到排序结果;3、根据下载次数的级别确定需要复制缓存服务器的数量,并根据该数量从排序结果中选择负载值低于预先设置的第二阈值的缓存服务器作为所述复制缓存服务器。具体地,根据下载次数的级别确定需要复制缓存服务器的数量包括:单位时间内该资源的下载次数越多,单位时间内下载次数的级别越高,选择的缓存服务器的数量也就越多。
换句话说,调度服务器确定单位时间内资源的下载次数的级别后,根据负载值确定空闲服务器的数量,并根据空闲服务器的数量确定资源的复制份数,在确定复制的份数后,调度服务器就可以调度空闲缓存服务器向源站服务器复制热点资源。
步骤313,复制缓存服务器从已缓存该资源的缓存服务器中复制该资源并缓存;
步骤314,完成复制的复制缓存服务器向已缓存该资源的缓存服务器发送复制完成通知;
步骤315,复制缓存服务器向调度服务器发送复制完成通知;
步骤316,调度服务器将复制完成通知、以及复制信息写入数据库,其中,复制信息为缓存有该资源的复制缓存服务器的信息。在以后用户下载该资源时,数据库可以根据该资源的复制信息查询该资源的缓存在哪几台缓存服务器中。
从上述处理可以看出,本发明实施例采用的技术方案摒弃了热点资源访问只能由单台缓存服务器负担的做法。自动将热点数据复制到多台空闲缓存服务器,可使多台缓存服务器共同提供负载,能够对缓存服务器资源进行充分地利用。并且,在一个甚至多个缓存服务器出现故障时,为用户提供热点资源的服务不会中断,由于多台缓存服务器共同提供服务,可以减少出口带宽的压力,防止出口带宽压力突增,提高了系统的可靠性和可扩展性。
在用户下载该资源后,如果该资源的下载次数减少,需要对该资源所占用的空间进行回收,在资源空间回收过程中,系统会根据该资源的访问热度确定该资源需要保留的份数,随后,根据确定的需要保留的份数,以及根据各个缓存服务器的负载值将负载值比较高的缓存服务器中的资源删除。达到优化系统资源的目的。
下面,结合图4,对热点资源空间回收的处理过程进行详细说明,图4是本发明实施例的热点资源空间回收的信令流程图,如图4所示,包括如下处理:
步骤401,调度服务器每隔一定时间从数据库获取资源的复制信息以及资源的访问热度值,在本发明实施例中,该资源为一个或多个热点资源。
步骤402,数据库向调度服务器返回热点资源的复制信息以及访问热度值,该访问热度值包括下载次数和下载时间;
步骤403,调度服务器判断热点资源的访问热度值是否达到预先设置的第一阈值,如果达到预先设置的第一阈值,则不进行任何处理,如果热点资源的访问热度值未达到预先设置的第一阈值,调度服务器根据热点资源的复制信息向数据库查询缓存有热点资源的所有缓存服务器的负载值;
步骤404,数据库根据热点资源的复制信息查询缓存有该热点资源的所有缓存服务器,并将缓存有该热点资源的所有缓存服务器的负载值及该热点资源的访问热度值发送到调度服务器;
步骤405,调度服务器根据热点资源的访问热度值确定热点资源在单位时间内的下载次数,根据单位时间内的下载次数确定热点资源下载次数的级别,并根据该级别确定热点资源保存复制的份数;随后,调度服务器根据缓存有热点资源的所有缓存服务器的负载值以及热点资源保存复制的份数确定至少一个负载高于预先设置的第三阈值的缓存有热点资源的缓存服务器,随后,调度服务器不再将之后用户发送的资源下载请求调度到确定的缓存服务器上,并通知确定的缓存服务器在无用户下载该资源后,删除该资源;即,优先删除负载相对高的缓存服务器上的热点资源。
步骤406,确定的缓存服务器在无用户下载该资源后,将热点资源删除,并向调度服务器返回删除完成消息;
步骤407,调度服务器将删除完成消息写入数据库,并更新数据库中的热点资源的复制信息。
从上述处理可以看出,通过热点资源空间回收机制可以提高存储空间利用率,确保存储空间不被浪费。实现资源缓存系统的负载分流、存储空间自动清理。
根据本发明的实施例,提供了一种缓存资源获取方法,图5是本发明实施例的资源获取方法的流程图,如图5所示,根据本发明实施例的缓存资源获取方法包括:
步骤501,接收资源查询请求,根据资源查询请求向数据库查询并确定用户请求下载的资源已缓存;
步骤502,接收数据库发送的缓存有资源的所有缓存服务器的信息以及缓存有资源的所有缓存服务器的负载值;
步骤503,根据缓存有资源的所有缓存服务器的信息以及缓存有资源的所有缓存服务器的负载值选择目标下载缓存服务器,并通知用户从目标下载缓存服务器中下载资源。具体地,可以通过重定向服务器通知用户从目标下载缓存服务器中下载资源。
通过上述处理,用户可以从系统中多台缓存服务器中下载资源,在其中一台缓存服务器出现故障的情况下,可以从其他缓存有该资源的缓存服务器中下载,提高了用户下载资源的效率和速度。
下面,结合附图,对本发明实施例的上述处理过程中用户请求下载已缓存资源的处理流程进行说明。图6是本发明实施例的用户请求下载已缓存资源的信令流程图,如图6所示,包括如下处理:
步骤601,用户向源站服务器发送资源下载请求;
步骤602,资源缓存系统的检测服务器获取用户向源站服务器发送的资源下载请求,并向调度服务器发送资源查询请求;
步骤603,调度服务器根据资源查询请求向其数据库查询该资源是否已经缓存在资源缓存系统的缓存服务器中,并指示数据库将该资源的访问热度值+1;
步骤604,数据库查询该资源是否已经缓存,并更新该资源的访问热度值。在判断该资源已经缓存后,确定该资源缓存在哪些缓存服务器中,并将所有缓存该资源的缓存服务器的信息发送到调度服务器;
步骤605,调度服务器向数据库查询所有缓存该资源的缓存服务器的负载值;
步骤606,数据库向调度服务器反馈所有缓存该资源的缓存服务器的负载值;
步骤607,调度服务器选择负载值最低的缓存该资源的缓存服务器作为目标下载缓存服务器,并将该目标下载缓存服务器的信息通知重定向服务器;
步骤608,重定向服务器将用户的资源下载请求重定向到该目标下载缓存服务器;
步骤609,用户连接至该目标下载缓存服务器,并从该目标下载缓存服务器中下载该资源。
从上述处理可以看出,通过热点资源访问多节点分流技术满足用户对热点数据访问需求,能够解决热点资源访问造成的系统瓶颈问题,最大程度提高了缓存服务器的利用率,具有高可扩展性和高可靠性。
需要说明的,本发明实施例可广泛应用在资源缓存系统中不同缓存服务器之间数据自动复制的各个应用场景,通过自动复制的方式,可以实现不同的应用功能,在实际应用中,包括但不限于以下应用功能:1、用于解决内容缓存系统动态扩展的问题,在缓存服务器性能或容量不足时动态添加缓存服务器而不影响系统正常运行;2、用于解决内容缓存系统数据安全问题,例如,防病毒;3、用于解决资源缓存系统动态迁移的问题,例如,按文件访问热度分服务器存储;4、用于解决资源缓存系统内容分类存储问题,例如,按文件访问量不同自动迁移到不同应用服务器。
根据本发明的实施例,提供了一种资源缓存装置,图7是本发明实施例的资源缓存装置的示意图,如图7所示,根据本发明实施例的资源缓存装置包括:获取模块70、第一确定模块72、第一通知模块74。下面,对本发明实施例的资源缓存装置进行详细说明。需要说明的是,在本发明实施例中,资源缓存装置可以为调度服务器。
具体地,获取模块70用于每隔第一预定时间(例如,10秒)从数据库获取资源的访问热度值,并在判断访问热度值达到预先设置的第一阈值的情况下,从数据库获取缓存服务器的负载值;在本发明的实施例中,从数据库获取的缓存服务器的负载值可以不包括当前本身就缓存有该资源的缓存服务器。
第一确定模块72根据访问热度值以及负载值确定复制资源的复制缓存服务器;具体地,第一确定模块72中还包括:确定子模块、排序模块、选择模块。
其中,确定子模块根据访问热度值确定单位时间内资源的下载次数的级别;排序模块根据负载值将除保存有资源的缓存服务器之外的所有缓存服务器顺序排序,得到排序结果;选择模块根据下载次数的级别确定需要复制缓存服务器的数量,并根据该数量从排序结果中选择负载值低于预先设置的第二阈值的缓存服务器作为复制缓存服务器。具体地,根据下载次数的级别确定需要复制缓存服务器的数量包括:单位时间内该资源的下载次数越多,单位时间内下载次数的级别越高,选择的缓存服务器的个数就越多。
在第一确定模块72确定复制资源的复制缓存服务器之后,第一通知模块74通知复制缓存服务器从保存有资源的缓存服务器中复制资源并缓存。
从上述处理可以看出,本发明实施例采用的技术方案摒弃了热点资源访问只能由单台缓存服务器负担的做法。自动将热点数据复制到多台空闲缓存服务器,可使多台缓存服务器共同提供负载,能够对缓存服务器资源进行充分地利用。并且,在一个甚至多个缓存服务器出现故障时,为用户提供热点资源的服务不会中断,由于多台缓存服务器共同提供服务,可以减少出口带宽的压力,防止出口带宽压力突增,提高了系统的可靠性和可扩展性。
在用户下载该资源后,如果该资源的下载次数减少,需要对该资源所占用的空间进行回收,在资源空间回收过程中,系统会根据该资源的访问热度确定该资源需要保留的份数,随后,根据确定的需要保留的份数,以及根据各个缓存服务器的负载值将负载值比较高的缓存服务器中的资源删除。达到优化系统资源的目的。
具体地,资源缓存装置还包括:第二确定模块、第二通知模块、第一接收模块、更新模块。
其中,当保存有资源的缓存服务器的访问热度值低于第一阈值时,第二确定模块在缓存有资源的缓存服务器中确定至少一个缓存服务器;具体地,第二确定模块根据热点资源的访问热度值确定热点资源在单位时间内的下载次数,根据单位时间内的下载次数确定热点资源下载次数的级别,并根据该级别确定热点资源保存复制的份数;随后,第二确定模块根据缓存有热点资源的所有缓存服务器的负载值以及热点资源保存复制的份数确定至少一个负载高于预先设置的第三阈值的缓存有热点资源的缓存服务器。
随后,第二通知模块通知确定的缓存服务器在无用户下载该资源后,删除资源;缓存服务器在无用户下载该资源后,将热点资源删除,并向调度服务器的第一接收模块返回删除完成消息,第一接收模块接收缓存服务器发送的删除完成消息;更新模块用于将删除完成消息写入数据库,并更新数据库中资源的复制信息。
从上述处理可以看出,通过热点资源空间回收机制可以提高存储空间利用率,确保存储空间不被浪费。实现资源缓存系统的负载分流、存储空间自动清理。
根据本发明的实施例,提供了一种资源获取装置,图8是本发明实施例的资源获取装置的示意图,如图8所示,根据本发明实施例的资源获取装置包括:第二接收模块80、第三确定模块81、第三接收模块82、第四确定模块83、第三通知模块84。下面,对本发明实施例的资源获取装置进行详细的说明。需要说明的是,本发明实施例中的资源获取装置为调度服务器。
具体地,首先,用户向源站服务器发送资源下载请求,资源缓存系统的检测服务器获取用户向源站服务器发送的资源下载请求,并向调度服务器发送资源查询请求,调度服务器的第二接收模块80接收资源查询请求;随后,第三确定模块81根据所述资源查询请求向所述数据库查询并确定用户请求下载的资源已缓存;在数据库判断该资源已经缓存后,确定该资源缓存在哪些缓存服务器中,并将所有缓存该资源的缓存服务器的信息发送到调度服务器,调度服务器的第三接收模块82接收所述数据库发送的缓存有所述资源的所有缓存服务器的信息以及缓存有所述资源的所有缓存服务器的负载值;随后,第四确定模块83根据缓存有所述资源的所有缓存服务器的信息以及缓存有所述资源的所有缓存服务器的负载值选择目标下载缓存服务器;第三通知模块84将该目标下载缓存服务器的信息通知重定向服务器,重定向服务器将用户的资源下载请求重定向到该目标下载缓存服务器,随后,用户就可以连接至该目标下载缓存服务器,并从该目标下载缓存服务器中下载该资源。
通过上述处理,用户可以从系统中多台缓存服务器中下载资源,在其中一台缓存服务器出现故障的情况下,可以从其他缓存有该资源的缓存服务器中下载,提高了用户下载资源的效率和速度。
根据本发明的实施例,提供一种资源缓存系统,图9是本发明实施例的资源缓存系统的示意图,如图9所示,根据本发明实施例的资源缓存系统包括:数据库90、调度服务器92、缓存服务器94。下面,对本发明实施例的资源缓存系统进行详细说明。
具体地,调度服务器92每隔第一预定时间(例如,10秒)从数据库90获取资源的访问热度值,并判断访问热度值是否达到预先设置的第一阈值,在确定访问热度值达到预先设置的第一阈值的情况下,从数据库90获取各个缓存服务器94的负载值;随后,调度服务器92根据访问热度值以及负载值确定至少一个复制该资源的缓存服务器94;在调度服务器92的控制下,至少一个缓存服务器94从保存有该资源的缓存服务器中复制该资源并缓存。其中,数据库90用于存储资源的访问热度值以及缓存服务器94的负载值。在本发明实施例中,数据库90还可以用于保存所有资源的复制信息。
此外,本发明实施例还可以包括:检测服务器和重定向服务器,其中,检测服务器用于获取用户向源站服务器发送的资源下载请求,并在获取了资源下载请求后,向调度服务器92发送资源查询请求;重定向服务器用于在调度服务器92确定了为用户提供服务的目标下载缓存服务器后,在调度服务器92的控制下,将用户的资源下载请求重定向到目标下载缓存服务器,用户就可以从目标下载缓存服务器下载请求的资源。
从上述处理可以看出,通过资源缓存系统的热点资源复制机制,实现资源缓存系统服务器负载分流,使得热点资源的访问不会造成系统瓶颈。
下面,对本发明实施例中用户请求下载未缓存资源的情况、用户请求下载已缓存资源的情况、以及资源空间回收机制的处理过程进行详细说明。
首先,对用户请求下载未缓存资源情况下的处理过程进行说明。
用户向源站服务器发送资源下载请求,资源缓存系统的检测服务器获取用户向源站服务器发送的资源下载请求,并向调度服务器92发送资源查询请求。调度服务器92根据资源查询请求向其数据库90查询该资源是否已经缓存在资源缓存系统的缓存服务器94中,并指示数据库90将该资源的访问热度值+1。随后,数据库90查询该资源是否已经缓存,并更新该资源的访问热度值。由于数据库90查询到该资源没有缓存,因此,数据库90向调度服务器92发送未缓存响应消息。调度服务器92接收到未缓存响应消息后,向重定向服务器转发未缓存响应消息,由于该资源未缓存在资源缓存系统中,因此,重定向服务器不需要进行重定向操作,用户依然从源站服务器(外网)下载该资源。在用户下载完成后,源站服务器向用户发送下载完成消息;随着用户下载次数的增多,资源缓存系统会将用户下载次数较多的资源下载到一台缓存服务器94中,以后的用户从该缓存服务器中下载该资源。
随后,调度服务器92向数据库90查询该资源的访问热度值;数据库90返回该资源的访问热度值;调度服务器92根据获取的访问热度值判断是否达到预先设置的第一阈值,即,判断用户是否从缓存有该资源的缓存服务器中大量下载该资源,在下面的描述中,将上述情况下的资源成为热点资源,如果调度服务器92判断访问热度值未达到预先设置的第一阈值,则不进行任何操作,如果确定访问热度值达到第一阈值,则向数据库90查询各缓存服务器94(不包括已缓存该资源的缓存服务器)的负载值;其中,所有缓存服务器94每隔一定时间就会将自己的负载值写入数据库90,以供调度服务器92的查询,例如,所有缓存服务器94每隔5秒将自己的负载值写入数据库90;
在上述过程中,调度服务器92判断访问热度值是否达到预先设置的阈值具体包括如下处理:1、调度服务器92每隔一定时间从数据库90获取该资源的访问热度值,其中,该资源的访问热度值可以根据预定算法确定,例如,根据该资源的下载次数及该资源每次下载的下载时间确定该资源的访问热度值;2、调度服务器92根据下载次数及下载时间计算单位时间内该资源的下载次数,并根据单位时间内该资源的下载次数判断访问热度值是否达到预先设置的第一阈值。
随后,数据库90向调度服务器92返回除已缓存该资源的缓存服务器之外各缓存服务器94的负载值;调度服务器92根据该资源的访问热度值以及除已缓存该资源的缓存服务器之外各缓存服务器94的负载值确定除已缓存该资源的缓存服务器之外至少一个复制该资源的复制缓存服务器94;也就是说,调度服务器92根据访问热度值和负载值选择负载较低的服务器复制该资源。
具体地,调度服务器92选择负载较低的服务器具体包括如下处理:1、调度服务器92首先根据该资源的访问热度值确定单位时间内该资源的下载次数,并根据单位时间内该资源的下载次数确定单位时间内该资源下载次数的级别;2、调度服务器92根据负载值将除保存有该资源的缓存服务器之外的所有缓存服务器94顺序排序,得到排序结果;3、调度服务器92根据下载次数的级别确定需要复制缓存服务器的数量,并根据该数量从排序结果中选择负载值低于预先设置的第二阈值的缓存服务器94作为复制缓存服务器。具体地,根据下载次数的级别确定需要复制缓存服务器的数量包括:单位时间内该资源的下载次数越多,单位时间内下载次数的级别越高,选择的缓存服务器94的个数就越多。
随后,至少一个复制缓存服务器94从保存有该资源的缓存服务器中复制该资源并缓存;保存有该资源的缓存服务器向完成复制的至少一个复制缓存服务器94发送复制完成通知;至少一个复制缓存服务器94向调度服务器92发送复制完成通知;调度服务器92取至少一个复制缓存服务器94发送的复制完成通知。随后,调度服务器92将复制完成通知、以及该资源的复制信息写入数据库90,在以后用户下载该资源时,数据库90可以根据该资源的复制信息查询该资源的缓存在哪几台缓存服务器94中。
从上述处理可以看出,本发明实施例采用的技术方案摒弃了热点资源访问只能由单台缓存服务器负担的做法。自动将热点数据复制到多台空闲缓存服务器,既可使多台缓存服务器共同提供负载,又提高了系统的可靠性和可扩展性。此外,通过热点资源的复制机制,热点数据的并发访问可以由多个缓存服务器分担,能够对缓存服务器资源进行充分地利用。并且,在一个甚至多个缓存服务器出现故障时,为用户提供热点资源的服务不会中断;此外,由于多台缓存服务器共同提供服务,可以减少出口带宽的压力,防止出口带宽压力突增。
下面,对用户请求下载已缓存资源情况下的处理进行详细说明。
具体地,用户向源站服务器发送资源下载请求;资源缓存系统的检测服务器获取用户向源站服务器发送的资源下载请求,并向调度服务器92发送资源查询请求;调度服务器92根据资源查询请求向其数据库90查询该资源是否已经缓存在资源缓存系统的缓存服务器94中,随后,调度服务器92指示数据库90将该资源的访问热度值+1,即,更新资源的访问热度值;数据库90根据该资源的复制信息查询该资源是否已经缓存,并更新该资源的访问热度值。数据库90在判断该资源已经缓存后,确定该资源缓存在哪些缓存服务器94中,并将所有缓存该资源的缓存服务器94的信息发送到调度服务器92;调度服务器92向数据库90查询所有缓存该资源的缓存服务器94的负载值;数据库90向调度服务器92反馈所有缓存该资源的缓存服务器94的负载值;调度服务器92选择缓存有该资源的所有缓存服务器94中负载值最低的缓存服务器作为目标下载缓存服务器,调度服务器92将该目标下载缓存服务器94的信息通知重定向服务器;重定向服务器将用户的资源下载请求重定向到该目标下载缓存服务器94;用户连接至该目标下载缓存服务器94,并从该目标下载缓存服务器94中下载该资源。
从上述处理可以看出,通过热点资源访问多节点分流技术满足用户对热点数据访问需求,能够解决热点资源访问造成的系统瓶颈问题,最大程度提高了缓存服务器94的利用率,具有高可扩展性和高可靠性。
下面,对热点资源空间回收机制的处理过程进行详细说明。
具体地,调度服务器92每隔一定时间从数据库90获取资源的复制信息以及资源的访问热度值,在本发明实施例中,该资源为一个或多个热点资源。数据库90向调度服务器92返回热点资源的访问热度值;调度服务器92判断热点资源的访问热度值是否达到预先设置的阈值,如果达到预先设置的阈值,则不进行任何处理,如果热点资源的访问热度值未达到预先设置的阈值,调度服务器92向数据库90查询缓存有热点资源的缓存服务器94的负载值;数据库90根据热点资源的复制信息查询缓存有该热点资源的所有复制缓存服务器94,并将缓存有该热点资源的所有复制缓存服务器94的负载值及该热点资源的访问热度值发送到调度服务器92;随后,调度服务器92根据热点资源的访问热度值(即,下载时间及下载次数)确定热点资源在单位时间内的下载次数,根据单位时间内的下载次数确定热点资源下载次数的级别,并根据该级别确定热点资源保存复制的份数;随后,调度服务器92根据缓存有热点资源的缓存服务器94的负载值以及热点资源保存复制的份数确定需要删除热点资源的至少一个负载值高于预先设置的第三阈值的缓存有热点资源的缓存服务器94,随后,调度服务器92不再将之后用户发送的资源下载请求调度到确定的负载值高于预先设置的第三阈值的缓存服务器上,并通知确定的至少一个负载值高于预先设置的第三阈值的缓存服务器在无用户下载该资源后,删除该资源;即,优先删除负载相对高的缓存服务器94上的热点资源。至少一个负载值高于预先设置的第三阈值的缓存服务器94在无用户下载该资源后,将热点资源删除,并向调度服务器92返回删除完成消息;调度服务器92将删除完成消息写入数据库90,并更新数据库90中的热点资源的复制信息。
从上述处理可以看出,通过热点资源空间回收机制可以提高存储空间利用率,确保存储空间不被浪费。实现资源缓存系统的负载分流、存储空间自动清理。
下面,对本发明实施例的资源缓存系统为P2P缓存系统的情况进行说明。图10是本发明实施例的P2P缓存系统的结构示意图,如图10所示,P2P缓存系统包括:用户1,用户2,…,用户n,缓存服务器1,缓存服务器2,缓存服务器3,缓存服务器4。
如上所述,调度服务器92判断存储在缓存服务器4的资源P为热点资源,并计算P的访问热度值,决定将资源P复制2份到两台缓存服务器94,即,缓存服务器1和缓存服务器2,优选地,优先向空闲缓存服务器94复制。调度服务器92发出指令让缓存服务器1和缓存服务器2将资源P复制到本地。缓存服务器1和缓存服务器2复制完成后,通过通知数据库的方式通知调度服务器92,同时通告调度服务器92哪些服务器可为用户提供该缓存资源。此后,调度服务器92便可根据调度算法调度可以访问此资源的缓存服务器1、缓存服务器2、缓存服务器4为用户提供服务。当热点值改变到阈值时,调度服务器会根据缓存服务器1、缓存服务器2、缓存服务器4的状态减少适量的热点文件副本,不会造成资源浪费。
使用本机磁盘作为存储,通过调度服务器92计算统计热点资源并控制复制方向,各个含有相同热点资源的缓存服务器94共同提供访问,可满足P2P缓存系统大用户量的应用,尤其适用于有较多热点资源的场景。
图11是本发明实施例的对资源分类存储的系统结构示意图,如图11所示,包括用户1、用户2、用户3,调度服务器、通用缓存服务器、媒体资源缓存服务器、Exe资源缓存服务器、Iso资源缓存服务器。
调度服务器通过热点调度算法将通用服务器中的热点文件,按照文件类型,复制到优化过的不同性能的专用缓存服务器中,由专用缓存服务器对用户提供高性能的数据传输,充分利用不同性能服务器的资源,以此提高整个缓存系统性能。
上述系统构架可以应用于原有系统的扩充,将不同性能的服务器充分利用,节省整体成本。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
综上所述,借助于本发明的技术方案,通过将热点资源判断机制用于缓存系统中,复制热点资源到多台缓存服务器中,以实现访问负载分流。通过调度服务器实现各个缓存服务器之间的调度,使得多个缓存服务器共同提供服务,从而提高了缓存系统的可扩展性和效率。在一个甚至多个缓存服务器出现故障时,为用户提供热点资源的服务不会中断;此外,由于多台缓存服务器共同提供服务,可以减少出口带宽的压力,防止出口带宽压力突增,最大程度提高了缓存服务器的利用率。通过热点资源空间回收机制可以提高存储空间利用率,确保存储空间不被浪费。实现资源缓存系统的负载分流、存储空间自动清理。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。