一种文件访问请求处理方法、装置及服务器与流程

文档序号:23469580发布日期:2020-12-29 13:09阅读:75来源:国知局
一种文件访问请求处理方法、装置及服务器与流程

本发明属于互联网技术领域,尤其涉及一种文件访问请求处理方法、装置及服务器。



背景技术:

cdn(contentdeliverynetwork,内容分发网络)是基于ip(internetprotocol,网络互连协议)网络构建的新型网络内容服务体系,代表了一种基于网络构建的高质量、高效率、具有鲜明网络秩序的网络应用服务模式。

负载均衡、网络请求重定向,以及分布式存储是构成cdn的核心内容。当用户终端发起文件访问请求时,负载均衡服务器根据就近原则和分布式存储系统中各数据库的负载情况,确定能够为用户终端以最高效率提供文件的目标数据库,并通过网络请求重定向确定与目标数据库对应的最终访问地址,以使用户终端通过该最终访问地址获取目标数据库中存储的文件。

在用户终端发起文件访问请求时,cdn筛选最高效的数据库响应该文件访问请求,这种处理方式往往会出现选中的数据库中并不存在相应文件的情况,但是,被选中的数据库仍需要根据该文件访问请求进行文件查询、检索等操作,从而导致出现无效的访问的问题,而这种无效的文件访问请求会增加数据库的负载压力,降低数据库的响应速度。



技术实现要素:

有鉴于此,本发明的目的在于提供一种文件访问请求处理方法、装置及服务器,对用户终端发起的文件访问请求进行过滤,减少最终到达数据库的无效文件访问请求,降低数据库的负载压力,提高数据库的响应速度,具体方案如下:

第一方面,本发明提供一种文件访问请求处理方法,包括:

获取文件访问请求,其中,所述文件访问请求中包括目标文件的id标识;

按预设算法将所述目标文件的id标识转换为查询码,得到所述目标文件对应的目标查询码;

判断预设映射关系中是否记录有所述目标查询码,其中,所述预设映射关系记录查询码与目标数据库存储文件的对应关系,且一所述查询码对应至少一文件;

若所述预设映射关系中记录有所述目标查询码,判断预设黑名单中是否记录有所述目标文件,其中,所述预设黑名单用于记录所述预设映射关系记录有查询码且实际并未存储于目标数据库中的文件;

若所述预设黑名单中未记录所述目标文件,发送所述文件访问请求至用于响应所述文件访问请求的所述目标数据库。

可选的,若所述预设映射关系中未记录所述目标查询码,或,所述预设黑名单中记录有所述目标文件,发起回源请求。

可选的,在发送所述文件访问请求至用于响应所述文件访问请求的目标数据库之后,本发明第一方面提供的文件访问请求处理方法还包括:

获取所述目标数据库的第一反馈信息;

若所述第一反馈信息表征所述目标数据库中未存储所述目标文件,添加所述目标文件至所述预设黑名单。

可选的,本发明第一方面提供的文件访问请求处理方法,还包括:

若所述目标数据库中添加新增文件,获取所述新增文件的id标识;

按所述预设算法将所述新增文件的id标识转换为新增查询码;

添加所述新增查询码与所述新增文件的对应关系至所述预设映射关系。

可选的,本发明第一方面任一项提供的文件访问请求处理方法,所述预设映射关系基于布隆过滤器构建。

第二方面,本发明提供一种文件访问请求处理装置,包括:

第一获取单元,用于获取文件访问请求,其中,所述文件访问请求中包括目标文件的id标识;

第一转换单元,用于按预设算法将所述目标文件的id标识转换为查询码,得到所述目标文件对应的目标查询码;

第一判断单元,用于判断预设映射关系中是否记录有所述目标查询码,其中,所述预设映射关系记录查询码与目标数据库存储文件的对应关系,且一所述查询码对应至少一文件;

第二判断单元,用于若所述预设映射关系中记录有所述目标查询码,判断预设黑名单中是否记录有所述目标文件,其中,所述预设黑名单用于记录所述预设映射关系记录有查询码且实际并未存储于目标数据库中的文件;

第一发送单元,用于若所述预设黑名单中未记录所述目标文件,发送所述文件访问请求至用于响应所述文件访问请求的所述目标数据库。

可选的,本发明第二方面提供的文件访问请求处理装置,还包括:

第二发送单元,用于若所述预设映射关系中未记录所述目标查询码,或,所述预设黑名单中记录有所述目标文件,发起回源请求。

可选的,本发明第二方面提供的文件访问请求处理装置,还包括:

第二获取单元,用于获取所述目标数据库的第一反馈信息;

第一添加单元,用于若所述第一反馈信息表征所述目标数据库中未存储所述目标文件,添加所述目标文件至所述预设黑名单。

可选的,本发明第二方面提供的文件访问请求处理装置,还包括:

第三获取单元,用于若所述目标数据库中添加新增文件,获取所述新增文件的id标识;

第二转换单元,用于按所述预设算法将所述新增文件的id标识转换为新增查询码;

第二添加单元,用于添加所述新增查询码与所述新增文件的对应关系至所述预设映射关系。

第三方面,本发明提供一种服务器,包括:存储器和处理器;所述存储器存储有适于所述处理器执行的程序,以实现本发明第一方面任一项所述的文件访问请求处理方法。

基于上述技术方案,本发明提供的文件访问请求处理方法,在获取包括目标文件id标识的文件访问请求,按预设算法将目标文件的id标识转换为查询码,得到目标文件的目标查询码之后,调用预设映射关系和预设黑名单进行判断,其中,预设映射关系记录查询码与目标数据库存储文件的对应关系,且一查询码对应至少一文件;预设黑名单作为预设映射关系的补充,用于记录预设映射关系记录有查询码且实际并未存储于目标数据库中的文件,如果预设映射关系中记录有目标查询码,进一步查询预设黑名单中是否记录有目标文件,如果预设黑名单中并未记录目标文件,则判定目标文件存在于目标数据库中,相应的文件访问请求为有效请求,发送文件访问请求至目标数据库。本发明提供的技术方案,通过预设映射关系和预设黑名单对文件访问请求进行双重过滤,有效减少最终到达数据库的无效访问请求,从而降低数据库的负载压力,提高数据库的响应速度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的文件访问请求处理方法流程图;

图2是发明实施例中涉及的布隆过滤器的原理示意图;

图3是本发明实施例提供的一种文件访问请求处理装置的结构框图;

图4是本发明实施例提供的另一种文件访问请求处理装置的结构框图;

图5是本发明实施例提供的再一种文件访问请求处理装置的结构框图;

图6是本发明实施例提供的又一种文件访问请求处理装置的结构框图;

图7是本发明实施例提供的一种服务器的结构框图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图1,本发明实施例提供的文件访问请求处理方法流程图,该方法可应用于可应用于电子设备,该电子设备可选如分布式存储系统中的数据库服务器或者是分布式系统中用于文件访问请求处理的其他服务器;参照图1,本发明实施例提供的文件访问请求处理方法,可以包括:

步骤s100,获取文件访问请求。

可选的,本发明申请实施例提供的文件访问请求处理方法,目的在于减少最终到达数据库的无效文件访问请求,降低数据库的负载压力,提高数据库的响应速度,因此,本发明申请实施例中述及的文件访问请求指的是cdn系统中,经过负载均衡服务器分配后,最终发送至应用本实施例所提供方法的本地集群数据库的文件访问请求,对于由用户终端发起、但被负载均衡服务器分配至其他集群的文件访问请求,不在本发明申请实施例所提供文件访问请求处理方法的处理范围内。

可选的,根据现有技术内容可知,在用户确定想要获取的文件并通过数据终端发出文件访问请求时,文件访问请求中携带有目标文件的id标识,该id标识可以是能够唯一的表征目标文件的标识,比如文件代码、文件名称等,现有技术中可以唯一的表征目标文件的id标识都是可选的,本发明实施例对此不做限定。

可选的,本发明实施例中述及的文件,可以包括媒资文件,当然也可以包括现有技术中其他类型或其他来源的文件,本发明申请对存储于数据库中的文件的具体形式不做限定。具体的,媒资文件是指内容资产,报社、广播电台、电视台、网站、通讯社等媒体单位,每天都要生产大量的文字、图片、音视频等新闻业务数据,这些数据和描述这些数据的元数据以及它们的版权信息等文件。

步骤s110,按预设算法将目标文件的id标识转换为查询码,得到目标文件对应的目标查询码。

可以想到的是,来自于不同数据库的文件可能有着不同的命名方式,同样的,不同数据库的文件还可以对应不同的id标识,为便于数据库中文件的查找和处理,需要将目标文件的id标识转换对应的查询码,即目标文件对应的目标查询码。

可选的,对于数据库中存储的媒资文件的查询码,可以通过布隆过滤器构建。下面简要介绍布隆过滤器的原理。

参见图2,图2是发明实施例中布隆过滤器的原理示意图。布隆过滤器设置有一个长度为m的比特型数组,数组中每个元素只占一个比特位,每个比特位只有0和1两种状态。假设布隆过滤器一共包括k个哈希函数,各个哈希函数之间相互独立,每一个哈希函数对应着不同的算法。任一哈希函数的输入域都为s且都大于等于m,那么对同一个文件的id标识(图2中id标识为url地址),分别经过k个哈希函数计算出来的结果也都是相互独立的。

同一个文件的id标识,在经过k个哈希函数计算之后,会得到k个哈希值。然后,针对每一个所得哈希值采用除留取余法进行运算,将得到k个余数值,将所得余数值作为前述比特型数组的比特位地址,然后在比特型数组上把相应地址的比特位设置为1(图中以描黑的方式体现置1的比特位),从而得到一对应的编码,即该文件的id标识的查询码。

因此,本发明实施例述及的预设算法可以为布隆过滤器中所包括的各个哈希函数。对于每个文件访问请求中所包含的目标文件的id标识,只需要根据布隆过滤器中包括的k个哈希函数计算得到k个值,即可得到与目标文件对应的目标查询码。

需要说明的是,前述计算文件的查询码的过程中所用到的除留取余法,只是现有技术中构建布隆过滤器中比特型数组的诸多方法之一,现有技术中的其他方法同样是可选的,本发明实施例对此不做限定。

步骤s120,判断预设映射关系中是否记录有目标查询码,若是,执行步骤s130,若否,执行步骤s150。

可选的,针对目标数据库中的每一个文件执行上述操作,继而可以得到基于布隆过滤器构建的预设映射关系,该预设映射关系代表了数据中所有文件与对应的查询码的对应关系,预设映射关系代表所有文件组成的集合。

对于基于布隆过滤器构建的预设映射关系,判断预设映射关系中是否记录有目标查询码的过程,沿用前例进行说明:

假设目标文件的id标识为url地址,通过布隆过滤器包括的k个哈希函数算出k个值,然后把k个值进行除留取余运算,得到k个[0,m-1]的值。然后布隆过滤器数组中这k个值对应的比特位是否都为黑,即是否都置1,如果有一个不为黑,那么可以确定目标文件的id标识肯定不在这个预设映射关系中。如果都为黑,则说明hash1在预设映射关系中。

需要说明的是,如果预设映射关系基于布隆过滤器构建得到,由于布隆过滤器自身算法的特点,使得得到的任一查询码至少对应一个文件,即查询码与文件之间是一对多或一对一的映射关系。布隆过滤器不需要存储元素本身,其存储的只是哈希值,节省90%的空间并且对于数据保密性好,且布隆过滤器使用多个哈希函数、当有任意一个哈希函数计算的位置上是0时则表示此元素一定不在集合中,同样的,基于布隆过滤器得到的预设映射关系,如果某一文件不再预设映射关系中,那么该文件肯定不在目标数据库中,相反的,如果经过比对,该文件的查询码存在于预设映射关系中,那么该文件则不一定存储于目标数据库之中,即基于布隆过滤器构建的预设映射关系存在一定的误判率。

可选的,对于以其他方式得到的预设映射关系,在经过前述步骤计算得到目标文件的目标查询码之后,通过遍历的方式查询预设映射关系,即可确定该预设映射关系中是否记录有目标文件的目标查询码。

可选的,对于目标数据库中新增的文件,还可以动态的添加到预设映射关系中。对于数据库中添加的新增文件,首先获取新增文件的id标识,按照预设算法将新增文件的id标识转换为新增查询码,然后将新增查询码与新增文件的对应关系添加至预设映射关系中即可。而目标数据库中是否存入新增文件的判定方法,可以通过现有技术中的文件管理方法实现,本发明申请对此不做限定。

如果判定预设映射关系中记录有目标查询码,则执行步骤s130,进一步判断预设黑名单中是否记录有目标文件,如果判定预设映射关系中并未记录目标查询码,则执行步骤s150,发起回源请求,直至确定目标文件所在的数据库。

步骤s130,判断预设黑名单中是否记录有目标文件,若否,执行步骤s140,若是,执行步骤s150。

为了提高文件访问请求的过滤效果,作为对预设映射关系的补充,特别是基于布隆过滤器得到的预设映射关系的补充,本发明实施例还提供预设黑名单。可选的,预设黑名单主要用于记录前述预设映射关系记录有查询码,但实际并未存储于目标数据库中的文件,即无法通过预设映射关系进行有效筛选的文件。

在预设映射关系中记录有目标文件的目标查询码之后,调用预设黑名单进一步对文件访问请求进行过滤,如果预设黑名单中记录有目标文件,则执行步骤s150,发起回源请求;相应的,如果预设黑名单中没有记录有目标文件,则执行步骤s140。

预设黑名单的建立是一个动态的,不断完善的过程,特别是在目标数据库中不断的添加新增文件的情况下,预设映射关系本身就处于一个动态调整的过程中,将进一步导致预设黑名单中的信息难以覆盖所有的可能情况。但对于长时间不发生文件新增或删除的目标数据库,经过一定时间的累积后,预设黑名单中是可以得到完善的,从而进一步提高文件访问请求的处理效果。

可选的,在发送文件访问请求至目标数据库之后,可以进一步获取目标数据库对于该文件访问请求的第一反馈信息;如果该第一反馈信息表征目标数据库中未存储该目标文件,则添加目标文件至预设黑名单。

可选的,预设黑名单可以使用哈希表数据结构来实现,哈希表数据结构实质是一个key:value的范型结构。预设一哈希表,对应设置哈希函数f(key),其中,key可以为对应文件的id标识,也可以是其他可以唯一的表征该文件的内容。将预设映射关系记录有查询码,但实际并未存储于目标数据库中的文件存储于哈希表的过程,可以参照现有技术实现,此处不再赘述。

步骤s140,发送文件访问请求至用于响应文件访问请求的目标数据库。

如果目标文件对应的目标查询码存在于预设映射关系中,且目标文件不在预设黑名单中,那么可以初步判定该文件访问请求是有效的,或者说,目标文件存在于目标数据库中,则可以发送文件访问请求至目标数据库,使得目标数据库可以根据该文件访问请求,提供对应的目标文件。

步骤s150,发起回源请求。

对于预设映射关系中未记录目标查询码,或者,预设黑名单中存在相应记录的目标文件,则可以判定目标数据库中并未存储该目标文件,可以发起回源请求,查询cdn系统中的其他数据库集群,直至确定存储有该目标文件的数据库,并由该数据库响应文件访问请求。对于回源请求的发起、执行,以及反馈过程,可以按照现有技术中的执行方式进行,本发明申请对此不做限定。

可选的,如前所述,预设黑名单的建立是一个动态调整、不断完善的过程。在发送文件访问请求至目标数据库之后,进一步可以获取目标数据库对于该文件访问请求的第一反馈信息,如果该第一反馈信息表征目标数据库中未存储该目标文件,即可将目标文件添加至预设黑名单。

综上所述,本发明实施例提供的文件访问请求处理方法,通过预设映射关系和预设黑名单对文件访问请求进行双重过滤,有效减少最终到达数据库的无效访问请求,快速的判定文件访问请求所需要的文件是否存储于目标数据库之中,从而降低数据库的负载压力,提高数据库的响应速度。

下面对本发明实施例提供的文件访问请求处理装置进行介绍,下文描述的文件访问请求处理装置可以认为是为实现本发明实施例提供的文件访问请求处理方法,在中央设备中需设置的功能模块架构;下文描述内容可与上文相互参照。

图3是本发明实施例提供的一种文件访问请求处理装置的结构框图,参照图3,该装置可以包括:

第一获取单元10,用于获取文件访问请求,其中,所述文件访问请求中包括目标文件的id标识;

第一转换单元20,用于按预设算法将所述目标文件的id标识转换为查询码,得到所述目标文件对应的目标查询码;

第一判断单元30,用于判断预设映射关系中是否记录有所述目标查询码,其中,所述预设映射关系记录查询码与目标数据库存储文件的对应关系,且一所述查询码对应至少一文件;

第二判断单元40,用于若所述预设映射关系中记录有所述目标查询码,判断预设黑名单中是否记录有所述目标文件,其中,所述预设黑名单用于记录所述预设映射关系记录有查询码且实际并未存储于目标数据库中的文件;

第一发送单元50,用于若所述预设黑名单中未记录所述目标文件,发送所述文件访问请求至用于响应所述文件访问请求的所述目标数据库。

可选的,参见图4,图4是本发明实施例提供的另一种文件访问请求处理装置的结构框图,在图3所示实施例的基础上,该装置还包括:

第二发送单元60,用于若所述预设映射关系中未记录所述目标查询码,或,所述预设黑名单中记录有所述目标文件,发起回源请求。

可选的,参见图5,图5是本发明实施例提供的再一种文件访问请求处理装置的结构框图,在图4所示实施例的基础上,还包括:

第二获取单元70,用于获取所述目标数据库的第一反馈信息;

第一添加单元80,用于若所述第一反馈信息表征所述目标数据库中未存储所述目标文件,添加所述目标文件至所述预设黑名单。

可选的,参见图6,图6是本发明实施例提供的又一种文件访问请求处理装置的结构框图,在图5所示实施例的基础上,还包括:

第三获取单元90,用于若所述目标数据库中添加新增文件,获取所述新增文件的id标识;

第二转换单元100,用于按所述预设算法将所述新增文件的id标识转换为新增查询码;

第二添加单元110,用于添加所述新增查询码与所述新增文件的对应关系至所述预设映射关系。

可选的,图7为本发明实施例提供的服务器的硬件结构图,参见图7所示,可以包括:至少一个处理器1,至少一个通信接口2,至少一个存储器3和至少一个通信总线4;

在本发明实施例中,处理器1、通信接口2、存储器3、通信总线4的数量为至少一个,且处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;显然,图7所示的处理器1、通信接口2、存储器3和通信总线4所示的通信连接示意仅是可选的;

可选的,通信接口2可以为通信模块的接口,如gsm模块的接口;

处理器1可能是一个中央处理器cpu,或者是特定集成电路asic(applicationspecificintegratedcircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。

存储器3可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

其中,处理器1具体用于执行存储器内的应用程序,以实现上述所述的文件访问请求处理方法的步骤。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的核心思想或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1