CN110795395B - 文件部署***和文件部署方法 - Google Patents
文件部署***和文件部署方法 Download PDFInfo
- Publication number
- CN110795395B CN110795395B CN201810856551.6A CN201810856551A CN110795395B CN 110795395 B CN110795395 B CN 110795395B CN 201810856551 A CN201810856551 A CN 201810856551A CN 110795395 B CN110795395 B CN 110795395B
- Authority
- CN
- China
- Prior art keywords
- file
- target file
- storage medium
- target
- local cache
- 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
-
- 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
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种文件部署***和文件部署方法。该***包括热部署模块和冷部署模块。冷部署模块用于通过所述缓存管理模块,将多个文件写入所述外部存储介质中,并从所述外部存储介质中获取文件并写入到本地缓存空间中;热部署模块用于接收针对目标文件的查询请求,并依据所述查询请求在所述本地缓存空间中查询是否存在所述目标文件;当查找到,读取所述目标文件;当未查找到,依据所述查询请求在外部存储介质中查询是否存在所述目标文件;以及当查找到,读取所述目标文件并存储至所述本地缓存空间。本申请的方案可以实现快速的响应,提高了回复响应的效率。
Description
技术领域
本申请涉及互联网技术领域,特别是涉及一种文件部署***和文件部署方法。
背景技术
在电商运营或者广告外投场景下,经常需要发布很多运营活动页、商户品牌页、广告外投页和以及文件配置信息等,将这些文件推送到对外服务机器上供对外服务。一方面,存在大量的用户不定时的执行页面的发布推送,并且对这种发布推送实时生效;另一方面,特别是运营活动页在一些特定的时间会经流量高峰,而商户品牌页在不定期时间随时可能被外部用户访问等。
在电商平台运行的过程中大量的用户发布已经积累了百万量级的页面,并且页面数量在持续迅速的增加,在页面访问方面,部分历史悠久的页面不定时的会被外部用户访问。现在的电商平台的存储问题,存在下述几个问题:
1.从海量页面存储的角度而言,所有页面会不定时的被访问,所以所有页面不可丢失,但是维护海量页面存储需要投入较大的资源。
2.从对外部用户服务角度而言,尽可能快速高效的对外提供服务,从海量页面中高效地获取目标的页面,从而确保性能足够可靠,也需要投入较多资源。
3.从开发技术运维角度而言,在机器替换、机器扩容时,能够足够便利将海量页面转移到新机器上对外服务,是目前业界均在考虑解决的问题。
本领域提出了多种文件部署的方案,以解决上述的问题,例如应用发布线上***、文件同步***、CDN发布***等,但是每一种方案均具有较大的缺陷。
例如,现有的应用发布上线***在机器扩容和置换时,都需要进行文件编译、文件拷贝以及重启等上线动作,对于海量页面实现部署在时间消耗上不可行,且必须重启应用,整体而言比较笨重不具备推展性。
例如,现有的文件同步***主要是将对应文件拷贝到各个机器中,至少未能解决机器置换和扩容时文件还原和部署问题。
再例如,现有的CDN发布***会局限于CDN的域名,并且现有的CDN发布***不具备主动推送变更的能力。
因此,需要提出一种文件部署方法和***,以至少部分地解决现有技术提出的问题。
发明内容
鉴于上述问题,本申请一实施例提出一种文件部署***和文件部署方法,以解决现有技术存在的问题。
本申请一实施例公开一种文件部署***,包括热部署模块和冷部署模块;
所述冷部署模块用于将多个文件写入所述外部存储介质中,并从所述外部存储介质中获取文件并写入到本地缓存空间中;
所述热部署模块用于:
接收针对目标文件的查询请求,并依据所述查询请求在所述本地缓存空间中查询是否存在所述目标文件;
当在所述本地缓存空间中查找到所述目标文件时,读取所述目标文件;
当在所述本地缓存空间中未查找到所述目标文件时,依据所述查询请求在外部存储介质中查询是否存在所述目标文件;以及
当在所述外部存储介质中查找到所述目标文件时,读取所述目标文件并存储至所述本地缓存空间。
本申请一实施例还公开一种文件部署方法,包括:
将多个文件写入所述外部存储介质中,并从所述外部存储介质中获取文件并写入到本地缓存空间中;
接收针对目标文件的查询请求,并依据所述查询请求在所述本地缓存空间中查询是否存在所述目标文件;
当在所述本地缓存空间中未查找到所述目标文件时,依据所述查询请求在外部存储介质中查询是否存在所述目标文件;
当在所述外部存储介质中查找到所述目标文件时,读取所述目标文件并存储至所述本地缓存空间。
本申请一实施例还公开一种计算处理设备,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述计算处理设备执行上述的方法。
本申请一实施例还公开一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得计算处理设备执行上述的方法。
由上述可知,本申请实施例提出的文件部署方法和装置,至少包括以下优点:
在本申请的方案中,在收到针对目标文件的查询请求时,执行主体先确定***的本地缓存空间是否已部署了这一目标文件,当检测到未部署时,利用热部署模块将该目标文件从外部存储介质部署到本地缓存空间,实现文件的部署。当这一目标文件为被频繁查询的目标文件时,即时本地缓存空间会按照加载先后的顺序清理时间上较旧的文件,该目标文件会被频繁地加载到本地缓存空间,能够快速地被调用。
因此对于一些访问比较频繁的目标文件,本申请的方案可以实现快速的响应,提高了回复响应的效率;针对访问不频繁的目标文件,这些文件可以从外部存储介质中调用,不占用本地缓存空间,避免了影响***开销。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请第一实施例的文件部署***的示意图。
图2是本申请第二实施例的文件部署***的***架构图。
图3是本申请第二实施例的文件部署***的整体流程图。
图4是本申请第二实施例的文件部署***的冷部署流程图。
图5是本申请第二实施例的文件部署***的容灾流程图。
图6是本申请第二实施例的文件部署***的热部署流程图。
图7是本申请第三实施例的文件部署方法的实施例的流程图。
图8是本申请第四实施例的文件部署方法的实施例的流程图。
图9是步骤S102的子步骤的流程图。
图10是步骤S105的子步骤的流程图。
图11示意性地示出了用于执行根据本申请的方法的计算处理设备的框图。
图12示意性地示出了用于保持或者携带实现根据本申请的方法的程序代码的存储单元。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
本申请的核心思想之一在于,提出一种文件部署***和文件部署方法。在本申请提出的方案中,针对目标文件(页面文件、配置文件等)的查询请求,执行主体先在本地缓存空间中进行查找,确认是否存在上述目标文件。当本地缓存空间中未查找到上述文件时,可以在与本地缓存空间相对的外部存储介质中查找,在查找到后返回该目标文件,并将该目标文件存储至本地缓存空间,实现目标文件的部署,本申请实施例提出的方案能够实现针对目标文件的快速查询。
以下通过多个实施例进行说明本申请的方案。
第一实施例
本申请第一实施例提出一种文件部署***。该文件部署***可以应用于包括部署推送端和部署接收端的硬件***。部署推送端例如为内容提供方的的服务器,用于提供所需要部署的文件;部署接收端例如为文件部署服务器,用于接收部署推送端所推送的文件,并在部署接收端进行部署,供用户访问。部署接收端可以为一个或多个,可以通过消息中间件与所述部署推送端通信。
图1所示为本申请第一实施例的文件部署***的简单示意图。如图1所示,该文件部署***包括热部署模块21和冷部署模块22。
上述热部署模块21可以用于接收针对目标文件的查询请求,并依据所述查询请求在所述本地缓存空间中查询是否存在所述目标文件;当在所述本地缓存空间中未查找到所述目标文件时,依据所述查询请求在外部存储介质中查询是否存在所述目标文件;以及当在所述外部存储介质中查找到所述目标文件时,读取所述目标文件并存储至所述本地缓存空间。
上述冷部署模块22可以用于将多个文件写入外部存储介质,并从所述外部存储介质获取文件写入本地缓存空间。
在一个请求从用户端发送至热部署模块21时,热部署模块21利用该请求中携带的目标文件的信息,从本地缓存空间中进行查找。当在本地缓存空间中未查询到对应的目标文件时,可以从外部存储介质中进行查找。当在外部存储介质中查找到之后,将该目标文件部署至本地缓存空间,以利于后续调用。
外部存储介质中存储有多个文件。这些文件是由冷部署模块22存储在外部存储介质中。冷部署模块22在将文件存储至外部存储介质中以外,还从外部存储介质中获得文件,并存储至本地缓存空间。
在一可选实施例中,上述热部署模块21可以用于在所述本地缓存空间中查找到所述目标文件时,读取所述目标文件。
本申请的方案适用于海量存储机制,能够同时解决海量存储和高效调用的问题。在针对目标文件的查询中,如果某一目标文件A1被频繁地查询,则该目标文件A1会一直存在于本地缓存空间中,方便来自外部的查询请求进行高效地查询和发现。如果某一目标文件A2被查询的次数很少,则由于其他目标文件(例如前述A1)被调用进入本地缓存空间,导致本地缓存空间中存储的不活跃目标文件A2从本地缓存空间中溢出,存储在外部存储介质中。
在本申请的方案中,在收到针对目标文件的查询请求时,执行主体先确定本地缓存空间是否已部署了这一目标文件,当检测到未部署时,利用热部署模块21将该目标文件从外部存储介质部署到本地缓存空间,实现文件的部署。当这一目标文件为被频繁查询的目标文件时,该目标文件总是存在于本地缓存空间,能够快速地被调用。
因此对于一些访问比较频繁的目标文件,本申请的方案可以实现快速的响应,提高了回复响应的效率;针对访问不频繁的目标文件,这些文件可以从外部存储介质中调用,不占用本地缓存空间,避免了影响***开销。
第二实施例
图2所示为本申请第二实施内提出的文件部署***的示意图。在图1的基础上,本申请实施例文件部署***还可以包括容灾模块23、缓存管理模块24和黑名单管理模块25。
在该文件部署***中,可以包括部署推送端300和部署执行端200等硬件。上述的冷部署模块22可以包括推送单元和执行单元。部署推送端300由冷部署模块22的推送单元组成,用于执行部署推送功能;热部署模块21、容灾模块23和冷部署模块22的执行单元构成部署执行端200,用于执行部署功能。
热部署模块21可以由用户的请求触发,当用户需要某个特定的服务但缓存管理模块24中无相关内容时,文件部署***的热部署模块21可以被触发,依据如请求路径等标识,热部署模块21会尝试通过外部存储介质(例如图2所示的远程存储装置26)将相应内容部署到本地,并更新缓存管理模块24来触发相应的缓存设置。
冷部署模块22主要目标在于让部署推送端300(例如内容提供方)能够新增以及修改服务内容,首先将部署的目标对象(例如页面、配置文件等)写入到存储介质(例如图2中的远程存储装置26)并发送消息通知部署执行端200,部署执行端200接收到消息之后会解析消息,并依据消息获得文件在外部存储介质中的地址,并从外部存储介质中获取目标文件内容,之后依据获取到的内容触发内存缓存、磁盘备份以及磁盘缓存的更新,这些缓存的更新用于对外提供最新的服务内容,磁盘相关的缓存和备份则用于进行内存缓存恢复以及容灾模块的兜底。
容灾模块23依次取本地缓存空间(例如文件内存缓存、文件磁盘缓存)、文件磁盘缓存备份、外部存储介质中相应的实体信息和内容,直到查到即返回内容,否则部署失败则报警并通知黑名单管理模块25更新黑名单内容,其实现的简单性可以确保不容易出故障,主要用于在整体其他机制失效的情况下,尽可能利用已有的信息来对外完成服务同时触发报警开关,通知相关开发人员处理故障。
缓存管理模块24可以用于管理文件部署***的存储空间,例如本地缓存空间和外部存储介质。本地缓存空间例如包括文件内存缓存和文件磁盘缓存,也可以包括文件磁盘缓存的备份、地址内存缓存、地址磁盘缓存等,在此不再赘述。缓存管理模块24包括文件和地址内存缓存、文件和地址磁盘缓存以及推展到外部存储介质,可以看作存在三级不同等级的缓存和存储,内存缓存和磁盘缓存能极大的提升整体性能,内存缓存可以使用LRU(Least Recently Used,近期最少使用算法)队列,从而可以在以最节省内存的方式下将最常访问的特定个数的文件存储的内存中,形成第一级缓存,通过热部署可以将偶尔访问的目标文件同步到磁盘中,从而将偶尔使用的目标文件(例如页面、分流配置文件等)存储到磁盘缓存,形成第二季缓存,剩下的不确定的合适被访问到的文件会存储在外部存储介质上,形成第三级缓存;三级缓存相互配合实现在支持海量页面的情况下,仍然保持很高的查询性能。
黑名单管理模块25面对无效请求和大量的泛洪攻击请求时,可以有效避免不断触发热部署这个耗时的动作,从而避免***资源抖动,是实时热部署和容灾保障模块的前提条件,否则***会存在明显的脆弱性。热部署模块21会将第一次失败的热部署以及容灾处理的相关标识保存起来,在第二次相同的请求匹配标识时直接实施拦截。已加入的黑名单的实体标识,会在部署推送端300的冷部署模块22的推送单元推送并命中到同一个黑名单标识时清除该黑名单,从而后续的相关请求不再被拦截。总之是通过和其他模块通信,从而实现的一套自适应自更新的内存映射,实现非法请求的拦截。
以下通过图3至图6公开的内容,对文件部署***中的整体流程、冷部署流程、热部署流程和容灾流程进行介绍。
图3所示为本申请一可选实施例的整体流程图,如图3所示,该文件部署***的整体流程图包括如下步骤:
如步骤2001所示,由用户发出查询请求。部署执行端200接收查询请求后,执行步骤2002,对目标文件进行查询。在查询的步骤中,由部署推送端300向部署执行端200进行推送。在步骤2003判断查询是否成功。当成功时,执行步骤2004,读取文件并对用户的查询请求回复响应;当不成功时,执行步骤2005,进入热部署模块,查询外部存储介质中是否具有目标文件。
之后,在步骤2006中判断是否查询成功;当查询成功时,执行步骤2007对用户的查询请求回复响应,当查询不成功时,如步骤2008,进入容灾模块23,从本地缓存空间的文件磁盘备份中进行查询。在步骤2009中,判断文件磁盘备份中是否能够查找到文件。当查找到时,在步骤20010中读取文件并对用户的请求回复响应;当未查找到时拒绝响应,如步骤20011。
图4所示为本申请一实施例的文件部署***的冷部署流程图。如图4所示,针对至少一个需要部署的文件,在步骤4001中,在部署推送端300,前述的冷部署模块22首先可以按照预设的计算方法,计算文件的存储桶号;在步骤4002中,将文件上传到外部存储介质,并获取文件存储的地址;在步骤4003中,可以将计算出的桶号和获取到的地址的路由映射进行发送,发送至路由存储介质(例如外部地址存储介质或远程地址存储介质);并在步骤4004中,将包含地址和桶号的消息发送至消息中间件。
在步骤4005中,消息中间件将消息发送至部署执行端200的消息监听模块,同时在步骤4003中,将文件存储至外部存储介质的文件存储介质,以及将地址存储至地址存储介质,在步骤4006中,获取文件地址;在步骤4007中,获取桶号和地址的路由映射,在步骤4008中,依据地址查询文件,判断文件存储介质中是否可以查找到文件。在步骤4009中,当查找到存在所述目标文件时,修正黑名单,即认为该目标文件不是黑名单文件,从黑名单缓存中删除所述目标文件或其地址、标识等。同时,执行步骤40010,将目标文件写入文件内存缓存,同时还可以执行步骤40011,将上一次部署的文件备份,并写入文件磁盘备份,并且在步骤40012中,将磁盘内容写入本次部署,即写入文件磁盘缓存。同时在步骤4007之后,可以执行步骤40081,即可以依据桶号查询目标文件的地址,确定是否存在桶号对应的地址,在步骤40082中,当存在时将桶号和地址写入地址磁盘缓存。
图5为本申请实施例的容灾流程图,如图5所示,容灾模块23查找本地磁盘确定是否存在目标文件,在这一步骤中,执行主体在文件磁盘缓存中进行读取,在步骤6002中判断读取是否成功。当读取成功时执行步骤6003返回响应;当读取失败时执行步骤6004,从本地的文件磁盘备份中进行获取,在步骤6005中,判断读取是否成功;当读取成功时执行步骤6006返回目标文件,当读取不成功时,执行步骤6007,依据路径计算桶号,在步骤6008中,依据桶号从磁盘中获取文件地址,即在这一步骤中是查找地址磁盘缓存中的桶号与地址的映射关系,确定文件的地址。在步骤6009中判断读取是否成功,如果读取成功,则执行步骤6010,依据文件地址从外部存储介质(例如文件存储介质)中获取文件内容;如果读取失败,则执行步骤6011,依据桶号从外部存储介质(例如地址存储介质)中获取文件地址,并返回文件地址;在步骤6013中判断读取是否成功,当成功时执行步骤6014读取并返回目标文件,当不成功时执行步骤S6015,拒绝对用户的请求进行响应。
容灾模块23的主要意义在于,从本地磁盘缓存和本地磁盘缓存备份中分别进行查找,当本地磁盘缓存中并未查找到目标文件时,依据地址再次进行查找,当通过地址仍无法定位到目标文件时,则认为容灾模块23执行失败,该查询请求无法正确返回。容灾模块23的设置提高了***的安全性能,在前序某一环节出现问题时,可以通过容灾模块23进行保底,避免将正确的目标文件的请求误判作黑名单文件请求,在保证高灵敏度的***的同时提高了***的稳固性。
图6所示为是本申请实施例的热部署模块21的流程图。如图6所示,热部署执行的流程如下。
在步骤7001中,接收用户发起的查询请求,部署执行端200依据文件标识进行查询。在步骤7002中部署执行端200的黑名单判断模块25会判断黑名单中是否命中目标文件的文件标识。在步骤7003中查找黑名单缓存,确认黑名单中是否存在对应的文件标识,当存在时进入步骤7004,判断是否可以从本地缓存空间的文件内存缓存中获取目标文件。可以执行步骤7005读取文件内存缓存,在其中进行查询。当查询成功时,如步骤7005响应用户的查询,即将所查询到的目标文件发送至用户。当查询失败时,执行步骤7006,查找文件磁盘缓存,判断是否可以从磁盘中获取目标文件,当成功时执行步骤7007发出响应并且执行步骤7008,将所查询到的目标文件写入文件内存缓存,当失败时,执行热部署7010。
在执行热部署中,首先执行步骤7011,计算目标文件的存储桶号。之后执行步骤7012,依据桶号查询地址。在这一步骤中,可以从地址存储介质中查找。当查询成功时可以执行步骤7013读取文件存储介质,依据地址查询文件,并且在步骤7014中将桶号和地址的映射写入地址磁盘缓存。在查询成功后执行步骤7021,读取文件内容并发出响应。同时在查询成功后,可以在步骤7013中将文件写入文件磁盘缓存,并拷贝至文件磁盘备份。此同时,在查询成功后,还可以执行步骤7017将文件写入文件内存缓存,方便后续调用。当依据地址查询文件失败时,可以执行步骤7016,从备份空间中确定是否有目标文件的备份。在步骤7018中判断是否可以查询到。当查询到之后回复响应,如步骤7019所示,并且发出容灾警报通知开发人员此次查询是通过查找备份空间中返回了目标文件的备份文件,并非一次正常的查询。但是,由于已经可以查找到目标文件的备份文件,说明这一请求并非无效请求或攻击。因此可以从黑名单缓存中删除目标文件的标识。当在备份空间中仍没有找到目标文件的备份文件,说明查询请求为无效请求或黑客攻击,则服务端可以拒绝请求响应如步骤7022所示。
由上述可知,在本实施例中,所述缓存管理模块24可以用于管理存储文件的本地缓存空间和外部存储介质;
如图4中的步骤4003所示,所述冷部署模块22用于通过所述缓存管理模块,将多个文件写入所述外部存储介质中,并如图4的步骤40010所示,通过所述缓存管理模块从所述外部存储介质中获取文件并写入到本地缓存空间中;
如图6中的步骤7001所示,热部署模块21接收针对目标文件的查询请求,并在步骤7005和7009中依据所述查询请求在所述本地缓存空间中查询是否存在所述目标文件;
当在所述本地缓存空间中查找到所述目标文件时,通过所述缓存管理模块读取所述目标文件;
当在所述本地缓存空间中未查找到所述目标文件时,如步骤7010所示,依据所述查询请求在外部存储介质中查询是否存在所述目标文件;以及
当在所述外部存储介质中查找到所述目标文件时,如步骤7013通过所述缓存管理模块读取所述目标文件并存储至所述本地缓存空间。
所述热部署模块21依据所述查询请求在所述本地缓存空间的文件中查询是否存在所述目标文件的操作可以包括如下操作:
如图6中的步骤7005,查找本地缓存空间的文件内存缓存,确认是否存在目标文件;
当在所述文件内存缓存中查找到所述目标文件时,读取所述目标文件;
如步骤7009,当在所述文件内存缓存中未查找到所述目标文件时,查找本地缓存空间的文件磁盘缓存,确认是否存在所述目标文件;
当在所述文件磁盘缓存中查找到所述目标文件时,如步骤7008,读取所述目标文件,并将所述目标文件从所述文件磁盘缓存写入所述文件内存缓存。
如上所述,所述***还包括黑名单管理模块25,所述黑名单管理模块25可以用于:
如步骤7002,判断所述查询请求是否为存储于黑名单中的黑名单请求;
当所述查询请求为黑名单请求时,停止查询所述目标文件。
在一具体实施例中,所述当所述查询请求为黑名单请求时,停止查询所述目标文件的操作具体可以包括:
当所述查询请求为黑名单请求时,拦截所述查询请求,例如阻止该查询请求接入其他模块。
如上述,所述本地缓存空间还可以包括用于存储文件的文件磁盘缓存备份,所述***还包括容灾模块23,所述容灾模块23用于:
当所述热部署模块21未在所述外部存储介质中查找到所述目标文件时,如图5中步骤6001、6004、6010所示,查询所述文件磁盘缓存、所述文件磁盘缓存备份和所述外部存储介质至少其中之一,确认是否存在所述目标文件;
当存在所述目标文件时,读取所述目标文件。
在一实施例中,所述容灾模块23还可以用于发出提示信息,以提示开发人员本次查询是一次非正常的查询,可以提醒开发者注意并排除问题。
在一实施例中,所述热部署模块21或所述冷部署模块22还可以用于:
将读取到的目标文件写入文件磁盘缓存备份,为容灾做准备。
在一具体实施例中,查询文件内存缓存和文件磁盘缓存只需要知道请求路径或页面ID,而不需要获知地址。因此,所述热部署模块21依据所述查询请求在所述本地缓存空间中查询是否存在所述目标文件的操作可以包括:
从所述查询请求中获取目标文件的请求路径或页面ID;以及
根据所述请求路径或页面ID,确定所定所述本地缓存空间中是否存在所述目标文件。
在一具体实施例中,查询外部存储介质可以通过计算桶号并利用桶号和地址的映射关系确定目标文件在外部存储介质的地址。因此,所述热部署模块21在所述本地缓存空间中未查找到所述目标文件时,依据所述查询请求在外部存储介质中查询是否存在所述目标文件的操作可以包括:
如图6中步骤7011,根据所述查询请求计算目标文件的存储桶号;
如步骤7012和7013,根据存储桶号和存储地址的映射查找所述外部存储介质,确认是否存在所述目标文件。
在一实施例中,所述冷部署模块22通过所述缓存管理模块从所述外部存储介质中获取文件并写入到本地缓存空间的操作具体可以包括:
如图4中步骤4001,计算目标文件的存储桶号;
如步骤4002,根据存储桶号查找所述外部存储介质,获取该目标文件并确定该目标文件的地址;
如步骤4003,将该目标文件写入本地缓存空间的文件内存缓存,并将该目标文件的地址和存储桶号写入本地缓存空间的地址内存缓存。
在一实施例中,所述冷部署模块22还用于执行如下操作:
入步骤4012,将该目标文件写入本地缓存空间的文件磁盘缓存,并将该目标文件的地址和桶号写入本地缓存空间的地址磁盘缓存。
在一实施例中,所述冷部署模块22还用于执行如下操作:
如步骤40011,当检测到所述文件磁盘缓存中存在相同标识的目标文件时,将所述文件磁盘缓存中原先存在的目标文件写入文件磁盘缓存备份,并将先存在的目标文件的地址写入地址磁盘缓存备份。
在一实施例中,所述冷部署模块22还用于执行如下操作:
如步骤4003,将该目标文件写入外部存储介质的文件存储介质,并将该目标文件的地址和存储桶号写入外部存储介质的地址存储介质。
在一实施例中,所述冷部署模块22通过所述缓存管理模块从所述外部存储介质中获取文件并写入到本地缓存空间的操作还包括:
如步骤4009,通知所述黑名单管理模块从所述黑名单中删除所述查询请求对应的目标文件。
综上所述,本申请第二实施例提出的文件部署***,至少具有如下优点:
在本申请的方案中,在收到针对目标文件的查询请求时,执行主体先通过缓存管理模块确定***的本地缓存空间是否已部署了这一目标文件,当检测到未部署时,利用热部署模块将该目标文件从外部存储介质部署到本地缓存空间,实现文件的部署。当这一目标文件为被频繁查询的目标文件时,即时本地缓存空间会按照加载先后的顺序清理时间上较旧的文件,该目标文件会被频繁地加载到本地缓存空间,能够快速地被调用。
因此对于一些访问比较频繁的目标文件,本申请的方案可以实现快速的响应,提高了回复响应的效率;针对访问不频繁的目标文件,这些文件可以从外部存储介质中调用,不占用本地缓存空间,避免了影响***开销。
此外,在应用中,大型互联网公司面向的客户群体非常广泛,例如可能有数万个之多,随着业务的发展和需求的增加,每个用户都可能随时编辑自己的创意并发布,如果每个用户编辑几十上百个不同的广告创意或者运营页面,则很快页面的总数量级就会突破百万级,甚至突破千万级,并且很有可能还会持续快速增长。在本申请实施例采用的方案中,通过文件存储介质持久化存储这些文件,能够存储的页面数量级依赖于分配的文件存储介质的大小,在理论上无数量级上限。
同时文件存储介质中返回的文件地址依赖于存储介质的具体特性,比如一些文件服务器使用url和md5结合来定位文件,需要建立文件和文件地址的映射,本申请实施例中为了维护这种海量的映射关系并保证满足快速增长的页面后续存储的可扩展性而设计了分桶机制,例如如果使用关系数据库来存储,则为了查询性能的高效,单个数据表的尺寸不宜太大,通过分桶的启发函数,可以将页面标识映射到一个桶中,并将页面地址存储到该桶下,在关系数据库一个桶可以是一个数据分表。分桶机制在海量文件和文件读取之间提供了一个中间桥梁,确保针对数量级快速增长的海量页面中可以保持存储的可拓展性和可维护性
在本申请的方案中,对于很多广告页、二跳页等,特别是一些规模较小的广告主或者商户发布的页面,存在访问的不确定性,例如平时流量较小的页面在广告主进行推广时流量可能突然增高、大量的页面可能每天只有数十个请求、还有一些页面失去了广告主的维护处于不定期访问的状态,外部用户的请求是无法预测的,必须保证用户无论合适访问哪个页面都要有响应。本申请实施例中特别设计了多级缓存机制,包括内存级、本地磁盘级以及外部存储介质级,每级缓存的访问成本差距巨大,例如内存级缓存访问时间基本可以忽略不计,而外部存储介质级的获取则需要花费几十毫秒。
为了满足访问的高性能特性,本申请实施例的方案可以实现按照页面活跃度自适应的将页面放置到不同级别的缓存,例如当某个广告主突然一天开始推广自己的广告创意,则***首先访问内存缓存,如果没有则读取磁盘缓存并将其保持到内存缓存中,如果还是没有则执行一次热部署将文件从外部存储介质中拷贝到内存缓存以及磁盘缓存中,后续的请求则直接通过内存缓存对外提供服务,其整体内容提供性能极高,保障对于活跃的页面整个部署开销接近零。另一方面,对于非活跃的页面,内存缓存使用的LRU队列具有给定的尺寸,例如只会保持5000个页面,当内存中页面个数接近或者等于5000个时,那些不常访问的页面则渐渐从内存缓存中移除,此时这些页面可能保持在本地磁盘缓存中,等待下次调用直接从本地磁盘读取,或者存储在外部文件存储介质中,等待下次热部署时同步到内存缓存和本地磁盘。这种依据活跃读对页面文件的缓存等级自适应适配,在平均访问性能上具备很大的价值,实际针对百万个量级的页面文件进行验证,其平均读取性能小于0.3毫秒,如果针对的是小文件则平均读取性能小于0.1毫秒,从而实现百万量级的页面读取而对整体服务影响可忽略不计。
除此之外,本申请优选实施例中的热部署方案的设计,动态地在应用线上运行的过程中执行单个实体的部署的机制,可以在运维上极大的缓解技术人员的负担,避免了技术人员在应用扩容和机器置换时手动维护海量的文件。
本申请优选实施例中的黑名单拦截方案的设计,可以防范异常请求和攻击确保***整体稳定,其一方面用于过滤不法请求,从而减少不必要的热部署和容灾执行,另一方面又可以增加报警来通知技术人员可能存在的攻击和异常。针对这种大型的服务***而言,经常会有非法请求和攻击请求,而非法请求和攻击请求都可能会触发热部署,而一次失败的热部署需要到各种地方查询文件,比一次成功的缓存响应以及热部署开销要大得多。例如不法分子的大量的非法请求进来,可能触发整个服务机群机型频繁的部署动作,最后甚至耗尽***的硬件资源。本申请实施例中,为了保障整体方案的健壮性以及可行性,设计了黑名单拦截机制,当一个非法请求进来,经过缓存管理模块、之后进入热部署模块、最后进入容灾模块,当所有的模块执行失败后,将这个非法请求加入到黑名单缓存中,之后所有的该非法请求直接在内存缓存中实施判断拦截,从而节省了后面的资源开销。如果一个被拦截的页面使用的标识,又被广告主选中并作为自己的广告创意的访问标识,则当广告主通过冷部署进行发布推送时,会去将黑名单缓存中的相关标识删除,则后续所有的该请求都作为合法请求对外提供服务。
本申请优选实施例中的容灾方案的设计,使用最简单逻辑来完成整体的服务,简单的好处就是不容易出故障,一方面尽力而为的确保服务集群对外可用,另一方面作为一种异常时启动的并行服务方案,和正常的服务方案一起,形成双方案保障***可用。
本申请优选实施例中将各个功能模块有机的组合在一起,相互配合形成一个完整的方案,从而实现一个支持海量页面、高性能、高可靠性的独立完整的部署单元。本申请实施例中部署方案还可以串联组合,针对不同的部署实体的一套部署方案存在独立性,可以将针对不同部署实体(如页面、分流配置文件)的部署方案等组合起来,完成一个针对特定业务的组合。很多服务平台在提供页面内容服务时,还可能提供分流服务来完成ABTest,使用本申请实施例提供的方法可以对分流文件配置一套部署集,并对页面文件提供一套部署集,实现多个实体部署的组合方案,在应用容器中通过不同的调用来实现分流文件的部署以及页面文件的部署,并执行相应的业务逻辑,从而轻易的创建一个完整的业务需求方案。
相对于上线***而言,本申请的方案足够轻量级,可以在应用不重启的前提下进行实时部署生效。如果使用应用上线***来部署海量页面,在执行时间及硬盘存储等方面基本不可行。相对于文件同步***而言,一般文件同步***主要就是将对应文件拷贝到各个机器中,很多没有解决机器置换和扩容时文件还原和部署问题,特别是针对海量页面的部署问题更加凸显,本申请实施例则借助热部署来实现动态机器扩容和置换的能力。另外,本申请实施例的方法增加了诸如多级缓存、容灾保障等特性,且在读取文件内容上性能极高。相对于CDN文件发布推送***,简单的通过HTTP来获取文件,而本申请实施例提供的多级缓存、容灾保障等机制,可以更高效的提供文件查询服务并可直接嵌入到应用容器中。另外本申请实施例具有部署端推送能力,可以实时推送消息到部署端进行变更生效。
第三实施例:
本申请实施例提出一种文件部署方法,如图7所示,该方法可以包括如下步骤:
S101,将多个文件写入所述外部存储介质中,并从所述外部存储介质中获取文件并写入到本地缓存空间中;
在这一步骤中,在判断是否为黑名单请求,或者在进行本地缓存空间的查找之前,可以先将多个目标文件部署到外部存储介质中。例如,多个目标文件(网页、文件等)可以存储在文件存储介质中,对应地,这些目标文件的桶号和地址的映射,可以存储在地址存储介质中。可选地,还可以将部分事先判断会被高频调用的目标文件直接存储在本地缓存空间的文件内存缓存和文件磁盘缓存中,在此并不特别限制。
在写入外部存储介质中后,可以通过冷部署的流程或者热部署的流程将上述的额文件写入本地缓存空间。
S102,接收针对目标文件的查询请求,并依据所述查询请求在所述本地缓存空间中查询是否存在所述目标文件;
在这一步骤中,当用户在客户端上进行操作,试图获取例如网页信息等目标文件,便会通过点击链接等方式,发起查询请求。客户端将该查询请求发送至执行主体,例如为服务器,触发服务器针对目标文件在存储空间中进行查询的操作。
举例来说,用户在客户端中点击了某一网页的网址链接,希望对该网页进行访问。此时网页即为目标文件,网址即为该目标文件的地址。客户端将包含网址的查询请求发送至服务器,服务器接收该查询请求,并于后续步骤中根据该查询请求中的网址对该网页内容进行查找,或者根据该查询请求中携带的目标文件的标识进行查找。
目标文件可以包括上述的页面文件,还可以包括例如分流配置文件等。页面文件例如为页面描述,例如html文件、服务端页面模板文件、其他自定义的可完整渲染页面的文件等,通常其为格式为JSON或者html等任何可在服务端渲染页面的文件,页面文件包含页面的标识、包含的组件或者具体代码以及配置的运营数据等。
分流配置文件用于在事先存储目标文件时对多个目标文件进行分流,其作用就是依据路径去找页面标识,分流配置文件包含比如分流比例的信息的,例如一个请求大致有20%访问A地址,80%访问B地址等。分流配置文件例如包括传统的ABtest的描述文件,JSON文件,也可以是自定义描述分流信息的文件。
存储空间包括本地缓存空间和外部存储介质。本地缓存空间包括文件内存缓存、文件磁盘缓存等。文件内存缓存(LRU缓存)是按找最近最少使用原则(Least-Recently-Used)创建的一段设定尺寸的内存缓存。文件磁盘缓存是指用于存储目标文件的磁盘缓存。外部存储介质是指外部存储的介质,例如文件存储介质和地址存储介质。文件存储介质例如为云对象存储的***等,主要适用于文件存储;地址存储介质例如为关系数据库或者nosql数据库等,可以持久化存储简单映射关系的信息。
在这一步骤中,可以依据查询请求包括的内容,例如文件地址、文件ID、文件内容本身、文件的CDN地址等等,针对本地缓存空间进行查询,确认是否可以查找到目标文件。在一实施例中,根据目标文件的地址或标识,可以先在文件内存缓存中进行查找,当无法查找到时,可以在文件磁盘缓存中进行查找。或者可以同时在文件内存缓存和文件磁盘缓存中进行查找,根据地址或标识,确认是否存在目标文件。
S104,当在所述本地缓存空间中未查找到所述目标文件时,依据所述查询请求在外部存储介质中查询是否存在所述目标文件;
在这一步骤中,当本地缓存空间中未查找到时,例如本地缓存空间的文件内存缓存、文件磁盘缓存中均未查找到目标文件,在可以在外部存储介质中继续查找。
如上述,外部存储介质是指外部存储的介质,例如文件存储介质和地址存储介质。文件存储介质例如为云对象存储的***等,适用于文件存储;外部存储介质在理论上可以无限扩大,只要按照合适的方式组织存储,即可满足对于查找效率的要求。
S105,当在所述外部存储介质中查找到所述目标文件时,读取所述目标文件并存储至所述本地缓存空间。
在这一步骤中,当检测到目标文件存在于外部存储介质时,从外部存储介质读取所述目标文件,并可以将读取到的目标文件发送至客户端。此外,还可以将目标文件写入本地缓存空间,例如文件内存缓存和文件磁盘缓存,以备下次直接从本地缓存空间调用。
可选地,在步骤S102,即接收针对目标文件的查询请求,并依据所述查询请求在所述本地缓存空间中查询是否存在所述目标文件的步骤之后,还可以包括如下步骤S103:
S103,当在所述本地缓存空间中查找到所述目标文件时,读取所述目标文件;
在这一步骤中,当服务器查找到目标文件时,读取该目标文件,并可以向客户端返回该目标文件。
针对一些访问比较频繁的目标文件,这些目标文件会被屡次加载进本地缓存空间中,以使得每次查找时从本地缓存空间即可查找到对应的目标文件。在查找到之后,可以读取目标文件并向客户端返回。
第四实施例
图8是第四实施例的的方法流程图。如图8所示,在该实施例中,除了前述步骤S101至S105之外,所述方法还可以包括如下步骤:
S101a,判断所述查询请求是否为存储于黑名单中的黑名单请求;
S101b,当所述查询请求为黑名单请求时,停止查询所述目标文件。
在上述两个步骤中,可以判断查询请求是不是黑名单请求,例如,查询请求中携带的目标文件的地址为黑名单中存储的多个地址其中之一,或者查询请求中携带的目标文件的标识为黑名单中存储的多个标识其中之一,在这种情况下可以判断查询请求为黑名单请求,例如为网络黑客发起的泛滥的攻击。当收到的查询请求为黑名单请求时,如果按照常规的手段进行处理则可能会导致***崩溃,因此可以不做任何处理或返回提示信息。进一步地,还可以追踪该查询请求的来源,对该来源发起的其他查询请求进行屏蔽。
在本申请的实施例中,判断是否为黑名单请求的步骤是在本地缓存空间查询之前进行的,从而可以节省***的开销,避免过多的黑名单请求导致执行主体从本地缓存空间或外部存储存储空间进行查找,从而拉低***的效率的问题。
在一实施例中,所述方法还可以包括:
S106当未在所述外部存储介质中查找到所述目标文件时,查询所述文件磁盘缓存、所述文件磁盘缓存备份和所述外部存储介质至少其中之一,确认是否存在所述目标文件;
S107当存在所述目标文件时,读取所述目标文件。
步骤S106和步骤S107中的容灾程序的目的是采用非最优方案代替当前的最优方案实现容灾。例如当未在本地的文件内存缓存中查找到目标文件时,可以启动非最优的方案,即从文件磁盘缓存、所述文件磁盘缓存备份和所述外部存储介质中进行查找。在找到后,表示容灾降级成功,其他备选方案可以查找到用户要求查找的目标文件。在这种情况下,对用户的查询请求进行相应。同时,容灾降级需要通知开发人员,以便开发人员明确当前并非采用最好的方案进行查询。因此可以发出容灾警报,告知开发人员。
当容灾处理未成功时,无法对用户的查询请求进行响应,同时在黑名单缓存中加入上述地址。以表示该地址与正常访问的地址不同,该地址需要经过容灾降级才能查询到对应的目标文件。
由上述可知,从***稳定性角度而言,容灾处理的设置的意义在于,在***部分故障的情况下,能够具备较强的容灾能力来尽可能的对外服务。因此该实施例中的容灾处理的过程增加了***的稳定性,提高了***的抗冲击性。
在一实施例中,所述本地缓存空间是按照LRU队列存储文件的缓存空间。
在一实施例中,如图9所示,上述步骤S102,即所述依据所述查询请求在所述本地缓存空间的文件中查询是否存在所述目标文件的步骤可以包括如下子步骤:
S1021,查找本地缓存空间的文件内存缓存,确认是否存在目标文件;
对目标文件的事先部署,是将目标文件存储至两级存储空间至少其中之一,上述两级存储空间包括文件内存缓存和文件磁盘缓存。较为频繁被调用的目标文件通常被自动缓存至文件内存缓存,结合图4所示,在步骤40081根据地址查询文件之后,查询成功的情况下会在步骤40010写入文件内存缓存。因此,对于这些较为活跃的页面来说,将会被频繁地写入文件内存缓存,并且这些页面也会如步骤40012所示写入文件磁盘缓存中。即便文件内存缓存和文件磁盘缓存会按照时间先后顺序自动删除时间更久远的文件,但是在一次次的调用过程中,文件会被一次次写入,方便下一次继续调用。
当下一次调取目标文件时,可以直接从文件内存缓存中获取。而对于一些不活跃的页面来说,被调用的次数不多,被写入文件内存缓存和文件磁盘缓存的频率较低,更容易被文件内存缓存和文件磁盘缓存直接删除。
S1022,当在所述文件内存缓存中查找到所述目标文件时,读取所述目标文件;
在这一步骤中,当在文件内存缓存中已经查找到目标文件时,直接读取这些目标文件,并返回至用户的客户端。例如,根据地址在文件内存缓存中查找到目标文件之后,执行主体读取目标文件,并进行封装,以特定的格式返回至客户端。
S1023,当在所述文件内存缓存中未查找到所述目标文件时,查找本地缓存空间的文件磁盘缓存,确认是否存在所述目标文件;
在这一步骤中,当出于种种原因,例如内存占满等原因,导致文件内存缓存中未查找到,则查询失败,执行主体可以转向从文件磁盘缓存中查找是否存在目标文件。
S1024,当在所述文件磁盘缓存中查找到所述目标文件时,读取所述目标文件,并将所述目标文件从所述文件磁盘缓存写入所述文件内存缓存。
在这一步骤中,当查找到后,可将目标文件进行读取,并进行封装,特定的格式返回至客户端。
在一实施例中,步骤S102,即所述依据所述查询请求在所述本地缓存空间中查询是否存在所述目标文件的步骤可以包括:
S1021a,从所述查询请求中获取目标文件的请求路径或页面ID;
S1022b,根据所述请求路径或页面ID,确定所定所述本地缓存空间中是否存在所述目标文件。
在一实施例中,所述步骤S104,即所述在所述本地缓存空间中未查找到所述目标文件时,依据所述查询请求在外部存储介质中查询是否存在所述目标文件的步骤可以包括:
S1041,根据所述查询请求计算目标文件的存储桶号;
S1042,根据存储桶号和存储地址的映射查找所述外部存储介质,确认是否存在所述目标文件。
在一实施例中,如图10所示,所述步骤S105,即所述从外部存储介质中获取文件并写入到本地缓存空间的步骤可以包括:
S1051,计算目标文件的存储桶号;
S1052,根据存储桶号查找所述外部存储介质,获取该目标文件并确定该目标文件的地址;
S1053,将该目标文件写入本地缓存空间的文件内存缓存,并将该目标文件的地址和存储桶号写入本地缓存空间的地址内存缓存。
S1051可以与图4中的步骤4001对应。S1052和S1053可以与图4中的步骤4003中存储至文件存储介质和地址存储介质的步骤分别对应。在S1051中,可以先按照指定的计算方法计算目标文件的存储桶号,然后在子步骤S1052中,将目标文件上传至外部存储介质的文件存储介质,并记录所存储的文件的地址,由于目标文件的地址和存储桶号具有对应关系,所以在步骤S1053中,可以将目标文件的存储桶号和地址的映射存储至外部存储介质的地址存储介质。
在本申请实施例中,引入了分桶存储的思想,可以先按照开发者设定的计算方式存储桶号,再根据地址将存储桶号与地址对应,存储桶号下可以具有地址表,每一个地址表中可以存储有多个地址,因此存储桶号与地址的对应关系为一对多的关系。在计算的存储桶号之后,当要查找目标文件时可以根据存储桶号确定所存储的桶,在所述存储桶中继续进行查找,这一处理方式可以缩小查找的范围,尽快的定位目标文件。
值得注意的是,一些外部的数据存储介质中存在天然的分桶特性,因此本申请在设置桶号和地址的对应关系时,也可以采用现有的数据存储介质的桶号计算方式,在此并不特别限定。
桶计算主要是实现分桶特性,即将不同的实体分到不同的桶中,从而实现一个归组以及实现数据库分表等,采用这种方式可以将海量的地址信息映射到不同的桶中,一个桶可以是一个数据库分表或者一个数据归类,采用分桶策略可以提高海量数据存储的可扩展性。
具体使用什么样的分桶策略需要看需求决定,分桶依据不同的地址存储介质将使用不同的启发函数。
例如,如下启发函数方案可以用于分桶存储:
1.如果使用关系数据库作为地址存储介质,则桶号启发函数直接返回实体表示,`bucket=id,id为实体的标识`,此时bucket则作为索引存储,此时一个实体即一个桶,即为不分桶。
2.如果使用nosql数据库或者需要使用数据库分表时作为地址存储介质,则:
标识id不为数字,使用hash来进行数字还,启发函数为`bucket=[hash(id)%mod],mod∈N+`,提供mod个桶,则将实体地址存储到mod个桶中之一,实现归组以及分表。如果mod为1000,则表示1000个桶,实体地址将散落在1000个桶中。
标识id为数字,则启发函数为`bucket=[id/mod],mod∈N+`,依据id的值,理论上具备无限个桶,并且可以让数字上相邻的实体归为一个桶或者相近的桶中。
具体使用何种方式分桶或者直接不分桶需要取决于业务需求以及地址存储介质的特性,但是涉及到海量页面的部署,为了避免在初始设计时的不完善导致后来需要进行海量页面的迁移,在初始规划中使用特定的分桶策略来确保地址存储数据具备理论上的可拓展性。
在一实施例中,在将目标文件从外部存储介质部署到本地缓存后,还可以将文件和对应的地址/桶号写入磁盘缓存、磁盘缓存备份、外部存储介质,并通知黑名单管理模块删除该目标文件的路径、ID等。即,步骤S105,即所述从外部存储介质中获取文件并写入到本地缓存空间的步骤还包括如下子步骤:
S1054,将该目标文件写入本地缓存空间的文件磁盘缓存,并将该目标文件的地址和桶号写入本地缓存空间的地址磁盘缓存。
S1055,当检测到所述文件磁盘缓存中存在相同标识的目标文件时,将所述文件磁盘缓存中原先存在的目标文件写入文件磁盘缓存备份,并将先存在的目标文件的地址写入地址磁盘缓存备份。
S1056,将该目标文件写入外部存储介质的文件存储介质,并将该目标文件的地址和存储桶号写入外部存储介质的地址存储介质。
S1057,通知所述黑名单管理模块从所述黑名单中删除所述查询请求对应的目标文件。
在一实施例中,当确认存在这个目标文件时,说明该文件是正当的请求,并非恶意攻击,则可以将这个目标文件的文件标识或者是地址从黑名单中删除,以避免误杀正确的目标文件的查询请求。
综上所述,本实施例提出的文件部署方法,至少具有如下优点:
在本申请的方案中,在收到针对目标文件的查询请求时,执行主体先确定***的本地缓存空间是否已部署了这一目标文件,当检测到未部署时,将该目标文件从外部存储介质部署到本地缓存空间,实现文件的部署。当这一目标文件为被频繁查询的目标文件时,即时本地缓存空间会按照加载先后的顺序清理时间上较旧的文件,该目标文件会被频繁地加载到本地缓存空间,能够快速地被调用。
因此对于一些访问比较频繁的目标文件,本申请的方案可以实现快速的响应,提高了回复响应的效率;针对访问不频繁的目标文件,这些文件可以从外部存储介质中调用,不占用本地缓存空间,避免了影响***开销。
此外,在应用中,大型互联网公司面向的客户群体非常广泛,随着业务的发展和需求的增加,每个用户都可能随时编辑自己的创意并发布,如果每个用户编辑几十上百个不同的广告创意或者运营页面,则很快页面的总数量级就会突破百万级,甚至突破千万级,并且很有可能还会持续快速增长。在本申请实施例采用的方案中,通过文件存储介质持久化存储这些文件,能够存储的页面数量级依赖于分配的文件存储介质的大小,在理论上无数量级上限。
同时文件存储介质中返回的文件地址依赖于存储介质的具体特性,比如一些文件服务器使用url和md5结合来定位文件,需要建立文件和文件地址的映射,本申请实施例中为了维护这种海量的映射关系并保证满足快速增长的页面后续存储的可扩展性而设计了分桶机制,例如如果使用关系数据库来存储,则为了查询性能的高效,单个数据表的尺寸不宜太大,通过分桶的启发函数,可以将页面标识映射到一个桶中,并将页面地址存储到该桶下,在关系数据库一个桶可以是一个数据分表。分桶机制在海量文件和文件读取之间提供了一个中间桥梁,确保针对数量级快速增长的海量页面中可以保持存储的可拓展性和可维护性
在本申请的方案中,对于很多广告页、二跳页等,存在访问的不确定性,例如平时流量较小的页面在广告主进行推广时流量可能突然增高、大量的页面可能每天只有数十个请求、还有一些页面失去了广告主的维护处于不定期访问的状态,外部用户的请求是无法预测的,必须保证用户无论合适访问哪个页面都要有响应。本申请实施例中特别设计了多级缓存机制,包括内存级、本地磁盘级以及外部存储介质级,每级缓存的访问成本差距巨大,例如内存级缓存访问时间基本可以忽略不计,而外部存储介质级的获取则需要花费几十毫秒。
为了满足访问的高性能特性,本申请实施例的方案可以实现按照页面活跃度自适应的将页面放置到不同级别的缓存,例如当某个广告主突然一天开始推广自己的广告创意,则***首先访问内存缓存,如果没有则读取磁盘缓存并将其保持到内存缓存中,如果还是没有则执行一次热部署将文件从外部存储介质中拷贝到内存缓存以及磁盘缓存中,后续的请求则直接通过内存缓存对外提供服务,其整体内容提供性能极高,保障对于活跃的页面整个部署开销接近零。另一方面,对于非活跃的页面,内存缓存使用的LRU队列具有给定的尺寸,例如只会保持5000个页面,当内存中页面个数接近或者等于5000个时,那些不常访问的页面则渐渐从内存缓存中移除,此时这些页面可能保持在本地磁盘缓存中,等待下次调用直接从本地磁盘读取,或者存储在外部文件存储介质中,等待下次热部署时同步到内存缓存和本地磁盘。这种依据活跃读对页面文件的缓存等级自适应适配,在平均访问性能上具备很大的价值,实际针对百万个量级的页面文件进行验证,其平均读取性能小于0.3毫秒,如果针对的是小文件则平均读取性能小于0.1毫秒,从而实现百万量级的页面读取而对整体服务影响可忽略不计。
除此之外,本申请优选实施例中的热部署方案的设计,动态地在应用线上运行的过程中执行单个实体的部署的机制,可以在运维上极大的缓解技术人员的负担,避免了技术人员在应用扩容和机器置换时手动维护海量的文件。
本申请优选实施例中的黑名单拦截方案的设计,可以防范异常请求和攻击确保***整体稳定,其一方面用于过滤不法请求,从而减少不必要的热部署和容灾执行,另一方面又可以增加报警来通知技术人员可能存在的攻击和异常。针对这种大型的服务***而言,经常会有非法请求和攻击请求,而非法请求和攻击请求都可能会触发热部署,而一次失败的热部署需要到各种地方查询文件,比一次成功的缓存响应以及热部署开销要大得多。例如不法分子的大量的非法请求进来,可能触发整个服务机群机型频繁的部署动作,最后甚至耗尽***的硬件资源。本申请实施例中,为了保障整体方案的健壮性以及可行性,设计了黑名单拦截机制,当一个非法请求进来,经过缓存管理模块、之后进入热部署模块、最后进入容灾模块,当所有的模块执行失败后,将这个非法请求加入到黑名单缓存中,之后所有的该非法请求直接在内存缓存中实施判断拦截,从而节省了后面的资源开销。如果一个被拦截的页面使用的标识,又被广告主选中并作为自己的广告创意的访问标识,则当广告主通过冷部署进行发布推送时,会去将黑名单缓存中的相关标识删除,则后续所有的该请求都作为合法请求对外提供服务。
本申请优选实施例中的容灾方案的设计,使用最简单逻辑来完成整体的服务,简单的好处就是不容易出故障,一方面尽力而为的确保服务集群对外可用,另一方面作为一种异常时启动的并行服务方案,和正常的服务方案一起,形成双方案保障***可用。
本申请优选实施例中将各个功能模块有机的组合在一起,相互配合形成一个完整的方案,从而实现一个支持海量页面、高性能、高可靠性的独立完整的部署单元。本申请实施例中部署方案还可以串联组合,针对不同的部署实体的一套部署方案存在独立性,可以将针对不同部署实体(如页面、分流配置文件等文件)的部署方案等组合起来,完成一个针对特定业务的组合。很多服务平台在提供页面内容服务时,还可能提供分流服务来完成ABTest,使用本申请实施例提供的方法可以对分流文件配置一套部署集,并对页面文件提供一套部署集,实现多个实体部署的组合方案,在应用容器中通过不同的调用来实现分流文件的部署以及页面文件的部署,并执行相应的业务逻辑,从而轻易的创建一个完整的业务需求方案。
相对于上线***而言,本申请的方案足够轻量级,可以在应用不重启的前提下进行实时部署生效。如果使用应用上线***来部署海量页面,在执行时间及硬盘存储等方面基本不可行。相对于文件同步***而言,一般文件同步***主要就是将对应文件拷贝到各个机器中,很多没有解决机器置换和扩容时文件还原和部署问题,特别是针对海量页面的部署问题更加凸显,本申请实施例则借助热部署来实现动态机器扩容和置换的能力。另外,本申请实施例的方法增加了诸如多级缓存、容灾保障等特性,且在读取文件内容上性能极高。相对于CDN文件发布推送***,简单的通过HTTP来获取文件,而本申请实施例提供的多级缓存、容灾保障等机制,可以更高效的提供文件查询服务并可直接嵌入到应用容器中。另外本申请实施例具有部署端推送能力,可以实时推送消息到部署端进行变更生效。
图11为本申请一实施例提供的计算处理设备的硬件结构示意图。如图11所示,该计算处理设备可以包括输入设备90、处理器91、输出设备92、存储器93和至少一个通信总线94。通信总线94用于实现元件之间的通信连接。存储器93可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,存储器93中可以存储各种程序,用于完成各种处理功能以及实现本实施例的方法步骤。
可选的,上述处理器91例如可以为中央处理器(Central Processing Unit,简称CPU)、应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,该处理器91通过有线或无线连接耦合到上述输入设备90和输出设备92。
可选的,上述输入设备90可以包括多种输入设备,例如可以包括面向用户的用户接口、面向设备的设备接口、软件的可编程接口、摄像头、传感器中至少一种。可选的,该面向设备的设备接口可以是用于设备与设备之间进行数据传输的有线接口、还可以是用于设备与设备之间进行数据传输的硬件***接口(例如USB接口、串口等);可选的,该面向用户的用户接口例如可以是面向用户的控制按键、用于接收语音输入的语音输入设备以及用户接收用户触摸输入的触摸感知设备(例如具有触摸感应功能的触摸屏、触控板等);可选的,上述软件的可编程接口例如可以是供用户编辑或者修改程序的入口,例如芯片的输入引脚接口或者输入接口等,可选的,上述收发信机可以是具有通信功能的射频收发芯片、基带处理芯片以及收发天线等。麦克风等音频输入设备可以接收语音数据。输出设备92可以包括显示器、音响等输出设备。
在本实施例中,该计算处理设备的处理器包括用于执行各设备中数据处理装置各模块的功能,具体功能和技术效果参照上述实施例即可,此处不再赘述。
图12为本申请另一实施例提供的计算处理设备的硬件结构示意图。图12是对图11在实现过程中的一个具体的实施例。如图12所示,本实施例的计算处理设备包括处理器101以及存储器102。
处理器101执行存储器102所存放的计算机程序代码,实现上述实施例中图1至图9的文件部署方法。
存储器102被配置为存储各种类型的数据以支持在计算处理设备的操作。这些数据的示例包括用于在计算处理设备上操作的任何应用程序或方法的指令,例如消息,图片,视频等。存储器102可能包含随机存取存储器(random access memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
可选地,处理器101设置在处理组件100中。该计算处理设备还可以包括:通信组件103,电源组件104,多媒体组件105,音频组件106,输入/输出接口107和/或传感器组件108。计算处理设备具体所包含的组件等依据实际需求设定,本实施例对此不作限定。
处理组件100通常控制计算处理设备的整体操作。处理组件100可以包括一个或多个处理器101来执行指令,以完成上述图1至图9方法的全部或部分步骤。此外,处理组件100可以包括一个或多个模块,便于处理组件100和其他组件之间的交互。例如,处理组件100可以包括多媒体模块,以方便多媒体组件105和处理组件100之间的交互。
电源组件104为计算处理设备的各种组件提供电力。电源组件104可以包括电源管理***,一个或多个电源,及其他与为计算处理设备生成、管理和分配电力相关联的组件。
多媒体组件105包括在计算处理设备和用户之间的提供一个输出接口的显示屏。在一些实施例中,显示屏可以包括液晶显示器(LCD)和触摸面板(TP)。如果显示屏包括触摸面板,显示屏可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
音频组件106被配置为输出和/或输入音频信号。例如,音频组件106包括一个麦克风(MIC),当计算处理设备处于操作模式,如语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器102或经由通信组件103发送。在一些实施例中,音频组件106还包括一个扬声器,用于输出音频信号。
输入/输出接口107为处理组件100和***接口模块之间提供接口,上述***接口模块可以是点击轮,按钮等。这些按钮可包括但不限于:音量按钮、启动按钮和锁定按钮。
传感器组件108包括一个或多个传感器,用于为计算处理设备提供各个方面的状态评估。例如,传感器组件108可以检测到计算处理设备的打开/关闭状态,组件的相对定位,用户与计算处理设备接触的存在或不存在。传感器组件108可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在,包括检测用户与计算处理设备间的距离。在一些实施例中,该传感器组件108还可以包括摄像头等。
通信组件103被配置为便于计算处理设备和其他设备之间有线或无线方式的通信。计算处理设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个实施例中,该计算处理设备中可以包括SIM卡插槽,该SIM卡插槽用于***SIM卡,使得计算处理设备可以登录GPRS网络,通过互联网与服务端建立通信。
由上可知,在图12实施例中所涉及的通信组件103、音频组件106以及输入/输出接口107、传感器组件108均可以作为图11实施例中的输入设备的实现方式。
本申请实施例提供了一种计算处理设备,包括:一个或多个处理器;和其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述计算处理设备执行如本申请实施例中一个或多个所述的方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者计算处理设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者计算处理设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者计算处理设备中还存在另外的相同要素。
以上对本申请所提供的一种文件部署***和文件部署方法,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (25)
1.一种文件部署***,其特征在于,包括冷部署模块、热部署模块和黑名单管理模块;
所述冷部署模块用于将多个文件写入外部存储介质,并从所述外部存储介质获取文件写入本地缓存空间;
所述热部署模块用于接收针对目标文件的查询请求,并查询本地缓存空间中是否存在所述目标文件,当在本地缓存空间中未查找到所述目标文件时,依据所述查询请求在所述外部存储介质中查询是否存在所述目标文件;当在外部存储介质中查找到所述目标文件时,读取所述目标文件并存储至所述本地缓存空间;
所述冷部署模块从所述外部存储介质中获取文件并写入到本地缓存空间的操作包括:
计算目标文件的存储桶号;
根据存储桶号查找所述外部存储介质,确定该目标文件的地址;
将该目标文件写入本地缓存空间的文件内存缓存,并将该目标文件的地址和存储桶号写入本地缓存空间的地址内存缓存;
通知所述黑名单管理模块从所述黑名单中删除所述查询请求对应的目标文件。
2.根据权利要求1所述的文件部署***,其特征在于,所述热部署模块还用于:当在本地缓存空间中查找到所述目标文件时,读取所述目标文件。
3.根据权利要求1所述的文件部署***,其特征在于,所述文件部署***还包括:缓存管理模块;所述缓存管理模块用于管理存储文件的本地缓存空间和外部存储介质;所述冷部署模块和所述热部署模块通过所述缓存管理模块从所述本地缓存空间和所述外部存储介质中读取或写入文件。
4.根据权利要求1所述的***,其特征在于,所述本地缓存空间包括用于存储文件的文件内存缓存和文件磁盘缓存;
所述热部署模块依据所述查询请求在所述本地缓存空间的文件中查询是否存在所述目标文件的操作包括:
查找本地缓存空间的文件内存缓存,确认是否存在目标文件;
当在所述文件内存缓存中查找到所述目标文件时,读取所述目标文件;
当在所述文件内存缓存中未查找到所述目标文件时,查找本地缓存空间的文件磁盘缓存,确认是否存在所述目标文件;
当在所述文件磁盘缓存中查找到所述目标文件时,读取所述目标文件,并将所述目标文件从所述文件磁盘缓存写入所述文件内存缓存。
5.根据权利要求1所述的***,其特征在于,所述***还包括黑名单管理模块,所述黑名单管理模块用于:
判断所述查询请求是否为存储于黑名单中的黑名单请求;
当所述查询请求为黑名单请求时,停止查询所述目标文件。
6.根据权利要求4所述的***,其特征在于,所述本地缓存空间还包括用于存储文件的文件磁盘缓存备份,所述***还包括容灾模块,所述容灾模块用于:
当所述热部署模块未在所述外部存储介质中查找到所述目标文件时,查询所述文件磁盘缓存、所述文件磁盘缓存备份和所述外部存储介质至少其中之一,确认是否存在所述目标文件;
当存在所述目标文件时,读取所述目标文件。
7.根据权利要求1所述的***,其特征在于,所述本地缓存空间是按照LRU队列存储文件的缓存空间。
8.根据权利要求1所述的***,其特征在于,所述热部署模块依据所述查询请求在所述本地缓存空间中查询是否存在所述目标文件的操作包括:
从所述查询请求中获取目标文件的请求路径或页面ID;
根据所述请求路径或页面ID,确定所定所述本地缓存空间中是否存在所述目标文件。
9.根据权利要求1所述的***,其特征在于,所述热部署模块在所述本地缓存空间中未查找到所述目标文件时,依据所述查询请求在外部存储介质中查询是否存在所述目标文件的操作包括:
根据所述查询请求计算目标文件的存储桶号;
根据存储桶号和存储地址的映射查找所述外部存储介质,确认是否存在所述目标文件。
10.根据权利要求1所述的***,其特征在于,所述冷部署模块还用于:
将该目标文件写入本地缓存空间的文件磁盘缓存,并将该目标文件的地址和桶号写入本地缓存空间的地址磁盘缓存。
11.根据权利要求10所述的***,其特征在于,所述冷部署模块还用于:
当检测到所述文件磁盘缓存中存在相同标识的目标文件时,将所述文件磁盘缓存中原先存在的目标文件写入文件磁盘缓存备份,并将先存在的目标文件的地址写入地址磁盘缓存备份。
12.根据权利要求1所述的***,其特征在于,所述冷部署模块还用于:
将该目标文件写入外部存储介质的文件存储介质,并将该目标文件的地址和存储桶号写入外部存储介质的地址存储介质。
13.一种文件部署方法,其特征在于,包括:
将多个文件写入外部存储介质中,并从外部存储介质中获取文件并写入到本地缓存空间中;
接收针对目标文件的查询请求,并依据所述查询请求在所述本地缓存空间中查询是否存在所述目标文件;
当在所述本地缓存空间中未查找到所述目标文件时,依据所述查询请求在外部存储介质中查询是否存在所述目标文件;
当在所述外部存储介质中查找到所述目标文件时,读取所述目标文件并存储至所述本地缓存空间;
所述从所述外部存储介质中获取文件并写入到本地缓存空间的步骤包括:
计算目标文件的存储桶号;
根据存储桶号查找所述外部存储介质,确定该目标文件的地址;
将该目标文件写入本地缓存空间的文件内存缓存,并将该目标文件的地址和存储桶号写入本地缓存空间的地址内存缓存;
从黑名单中删除所述查询请求对应的目标文件。
14.根据权利要求13所述的文件部署方法,其特征在于,在接收针对目标文件的查询请求,并依据所述查询请求在所述本地缓存空间中查询是否存在所述目标文件之后,所述方法还包括:
当在本地缓存空间中查找到所述目标文件时,读取所述目标文件。
15.根据权利要求13所述的方法,其特征在于,所述依据所述查询请求在所述本地缓存空间的文件中查询是否存在所述目标文件的步骤包括:
查找本地缓存空间的文件内存缓存,确认是否存在目标文件;
当在所述文件内存缓存中查找到所述目标文件时,读取所述目标文件;
当在所述文件内存缓存中未查找到所述目标文件时,查找本地缓存空间的文件磁盘缓存,确认是否存在所述目标文件;
当在所述文件磁盘缓存中查找到所述目标文件时,读取所述目标文件,并将所述目标文件从所述文件磁盘缓存写入所述文件内存缓存。
16.根据权利要求13所述的方法,其特征在于,所述方法还包括:
判断所述查询请求是否为存储于黑名单中的黑名单请求;
当所述查询请求为黑名单请求时,停止查询所述目标文件。
17.根据权利要求14所述的方法,其特征在于,所述方法还包括:
当未在所述外部存储介质中查找到所述目标文件时,查询文件磁盘缓存、文件磁盘缓存备份和所述外部存储介质至少其中之一,确认是否存在所述目标文件;
当存在所述目标文件时,读取所述目标文件。
18.根据权利要求13所述的方法,其特征在于,所述本地缓存空间是按照LRU队列存储文件的缓存空间。
19.根据权利要求13所述的方法,其特征在于,所述依据所述查询请求在所述本地缓存空间中查询是否存在所述目标文件的步骤包括:
从所述查询请求中获取目标文件的请求路径或页面ID;
根据所述请求路径或页面ID,确定所定所述本地缓存空间中是否存在所述目标文件。
20.根据权利要求13所述的方法,其特征在于,所述从外部存储介质中获取文件并写入到本地缓存空间的步骤包括:
计算目标文件的存储桶号;
根据存储桶号查找所述外部存储介质,获取该目标文件并确定该目标文件的地址;
将该目标文件写入本地缓存空间的文件内存缓存,并将该目标文件的地址和存储桶号写入本地缓存空间的地址内存缓存。
21.根据权利要求20所述的方法,其特征在于,所述从外部存储介质中获取文件并写入到本地缓存空间的步骤还包括:
将该目标文件写入本地缓存空间的文件磁盘缓存,并将该目标文件的地址和桶号写入本地缓存空间的地址磁盘缓存。
22.根据权利要求21所述的方法,其特征在于,所述从外部存储介质中获取文件并写入到本地缓存空间的步骤还包括:
当检测到所述文件磁盘缓存中存在相同标识的目标文件时,将所述文件磁盘缓存中原先存在的目标文件写入文件磁盘缓存备份,并将先存在的目标文件的地址写入地址磁盘缓存备份。
23.根据权利要求20所述的方法,其特征在于,所述从外部存储介质中获取文件并写入到本地缓存空间的步骤还包括:
将该目标文件写入外部存储介质的文件存储介质,并将该目标文件的地址和存储桶号写入外部存储介质的地址存储介质。
24.一种计算处理设备,其特征在于,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述计算处理设备执行如权利要求13-23中任一项的方法。
25.一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得计算处理设备执行如权利要求13-23中任一项的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810856551.6A CN110795395B (zh) | 2018-07-31 | 2018-07-31 | 文件部署***和文件部署方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810856551.6A CN110795395B (zh) | 2018-07-31 | 2018-07-31 | 文件部署***和文件部署方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110795395A CN110795395A (zh) | 2020-02-14 |
CN110795395B true CN110795395B (zh) | 2023-04-18 |
Family
ID=69424941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810856551.6A Active CN110795395B (zh) | 2018-07-31 | 2018-07-31 | 文件部署***和文件部署方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110795395B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111628889B (zh) * | 2020-05-11 | 2023-04-07 | Oppo(重庆)智能科技有限公司 | 热部署方法及装置、电子设备和存储介质 |
CN111797095B (zh) * | 2020-06-10 | 2024-05-03 | 阿里巴巴集团控股有限公司 | 索引构建方法和json数据查询方法 |
CN111813783B (zh) * | 2020-07-27 | 2024-03-26 | 南方电网数字电网研究院有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN112950370A (zh) * | 2021-02-25 | 2021-06-11 | 未鲲(上海)科技服务有限公司 | 业务处理方法、装置、设备及存储介质 |
CN113076292B (zh) * | 2021-03-30 | 2023-03-14 | 山东英信计算机技术有限公司 | 一种文件缓存方法、***、存储介质及设备 |
CN114089912B (zh) * | 2021-10-19 | 2024-05-24 | 银联商务股份有限公司 | 基于消息中间件的数据处理方法及装置、存储介质 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020146A (zh) * | 2012-11-22 | 2013-04-03 | 华为技术有限公司 | 数据处理方法及设备 |
CN103092920A (zh) * | 2012-12-26 | 2013-05-08 | 新浪网技术(中国)有限公司 | 半结构化数据的存储方法及存储*** |
CN104268286A (zh) * | 2014-10-21 | 2015-01-07 | 北京国双科技有限公司 | 一种查询热数据的方法 |
CN104407990A (zh) * | 2014-12-08 | 2015-03-11 | 北京星网锐捷网络技术有限公司 | 一种磁盘访问方法及装置 |
CN104462194A (zh) * | 2014-10-28 | 2015-03-25 | 北京国双科技有限公司 | 一种业务数据的处理方法、装置及服务器 |
CN104834607A (zh) * | 2015-05-19 | 2015-08-12 | 华中科技大学 | 一种提高分布式缓存的命中率并减少固态硬盘磨损的方法 |
CN105447171A (zh) * | 2015-12-07 | 2016-03-30 | 北京奇虎科技有限公司 | 数据缓存方法与装置 |
CN106657258A (zh) * | 2016-11-04 | 2017-05-10 | 成都视达科信息技术有限公司 | 一种基于nginx+lua的安全加速中间件实现方法及装置 |
CN106934001A (zh) * | 2017-03-03 | 2017-07-07 | 广州天源迪科信息技术有限公司 | 分布式快速清单查询***及方法 |
CN107147648A (zh) * | 2017-05-11 | 2017-09-08 | 北京奇虎科技有限公司 | 资源请求的处理方法、客户端、服务器和*** |
CN107451152A (zh) * | 2016-05-31 | 2017-12-08 | 阿里巴巴集团控股有限公司 | 计算设备、数据缓存和查找的方法及装置 |
CN107943594A (zh) * | 2016-10-13 | 2018-04-20 | 北京京东尚科信息技术有限公司 | 数据获取方法和装置 |
CN107958033A (zh) * | 2017-11-20 | 2018-04-24 | 郑州云海信息技术有限公司 | 元数据的查找方法、装置、分布式文件***及存储介质 |
WO2018077292A1 (zh) * | 2016-10-28 | 2018-05-03 | 北京市商汤科技开发有限公司 | 数据处理方法和***、电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10168912B2 (en) * | 2016-02-17 | 2019-01-01 | Panzura, Inc. | Short stroking and data tiering for a distributed filesystem |
-
2018
- 2018-07-31 CN CN201810856551.6A patent/CN110795395B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020146A (zh) * | 2012-11-22 | 2013-04-03 | 华为技术有限公司 | 数据处理方法及设备 |
CN103092920A (zh) * | 2012-12-26 | 2013-05-08 | 新浪网技术(中国)有限公司 | 半结构化数据的存储方法及存储*** |
CN104268286A (zh) * | 2014-10-21 | 2015-01-07 | 北京国双科技有限公司 | 一种查询热数据的方法 |
CN104462194A (zh) * | 2014-10-28 | 2015-03-25 | 北京国双科技有限公司 | 一种业务数据的处理方法、装置及服务器 |
CN104407990A (zh) * | 2014-12-08 | 2015-03-11 | 北京星网锐捷网络技术有限公司 | 一种磁盘访问方法及装置 |
CN104834607A (zh) * | 2015-05-19 | 2015-08-12 | 华中科技大学 | 一种提高分布式缓存的命中率并减少固态硬盘磨损的方法 |
CN105447171A (zh) * | 2015-12-07 | 2016-03-30 | 北京奇虎科技有限公司 | 数据缓存方法与装置 |
CN107451152A (zh) * | 2016-05-31 | 2017-12-08 | 阿里巴巴集团控股有限公司 | 计算设备、数据缓存和查找的方法及装置 |
CN107943594A (zh) * | 2016-10-13 | 2018-04-20 | 北京京东尚科信息技术有限公司 | 数据获取方法和装置 |
WO2018077292A1 (zh) * | 2016-10-28 | 2018-05-03 | 北京市商汤科技开发有限公司 | 数据处理方法和***、电子设备 |
CN106657258A (zh) * | 2016-11-04 | 2017-05-10 | 成都视达科信息技术有限公司 | 一种基于nginx+lua的安全加速中间件实现方法及装置 |
CN106934001A (zh) * | 2017-03-03 | 2017-07-07 | 广州天源迪科信息技术有限公司 | 分布式快速清单查询***及方法 |
CN107147648A (zh) * | 2017-05-11 | 2017-09-08 | 北京奇虎科技有限公司 | 资源请求的处理方法、客户端、服务器和*** |
CN107958033A (zh) * | 2017-11-20 | 2018-04-24 | 郑州云海信息技术有限公司 | 元数据的查找方法、装置、分布式文件***及存储介质 |
Non-Patent Citations (2)
Title |
---|
Zhao X M 等.Chord-Based Multi-Attribute Multi-Keyword Query and Hot-Set Cache.International Conference on Internet Technology & Applications.2011,全文. * |
葛微;罗圣美;周文辉;赵;唐云;周娟;曲文武;袁春风;黄宜华.HiBase:一种基于分层式索引的高效HBase查询技术与***.计算机学报.2016,(第01期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN110795395A (zh) | 2020-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110795395B (zh) | 文件部署***和文件部署方法 | |
CN107133234B (zh) | 缓存数据更新的方法、装置及*** | |
CN106649349B (zh) | 用于游戏应用的数据缓存方法、装置和*** | |
US9753954B2 (en) | Data node fencing in a distributed file system | |
CN108683668B (zh) | 内容分发网络中的资源校验方法、装置、存储介质及设备 | |
CN113766035A (zh) | 一种业务受理及共识的方法及装置 | |
US9367261B2 (en) | Computer system, data management method and data management program | |
CN103491543A (zh) | 通过无线终端检测恶意网址的方法、无线终端 | |
CN107092628B (zh) | 时间序列数据的处理方法和装置 | |
CN104714965A (zh) | 静态资源去重方法、静态资源管理方法及装置 | |
US9379849B2 (en) | Content delivery failover | |
CN105162879A (zh) | 实现多机房数据一致性的方法、装置及*** | |
KR20150083938A (ko) | Dds-db 연동 시스템 | |
CN106033322A (zh) | 一种数据存储方法及装置 | |
CN104468399A (zh) | 数据传输方法、装置和服务器 | |
CN104077291B (zh) | 用户生成内容访问次数的发布方法、客户端及*** | |
CN108696562B (zh) | 一种获取网站资源的方法及装置 | |
CN108196902A (zh) | 用于展示开屏广告的方法与设备 | |
US20230069845A1 (en) | Using a threat intelligence framework to populate a recursive dns server cache | |
CN111767481A (zh) | 访问处理方法、装置、设备和存储介质 | |
US7058773B1 (en) | System and method for managing data in a distributed system | |
CN110807040B (zh) | 管理数据的方法、装置、设备及存储介质 | |
CN112861031B (zh) | Cdn中url刷新方法、装置、设备以及cdn节点 | |
CN114185804A (zh) | 一种接口测试方法、装置及终端设备 | |
CN111240750B (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 |