自动同步更新内容分发网络中文件名的方法及系统与流程

文档序号:12967631阅读:165来源:国知局
自动同步更新内容分发网络中文件名的方法及系统与流程

本发明涉及cdn缓存同步技术领域,具体涉及自动同步更新内容分发网络中文件名的方法及系统。



背景技术:

现有技术中对于网页的资源如图片、javascript脚本文件和css样式文件等,都会通过cdn(contentdeliverynetwork,内容分发网络)缓存的方式来提升页面响应速度。但是上述方法也会引发一个问题:当这些资源更新后,如何同步到每个cdn节点服务器上,使得用户访问页面的资源是最新的。

前端用于网页和用户终端交互,后端为网页提供数据。当用户访问一个网页时,前端通过请求后端服务器,后端将包含了页面的所有的资源的地址的链接返回给网页。网页从cdn节点服务器上异步加载资源,cdn节点服务器会通过资源的文件名判断用户所需资源是否在该cdn节点服务器上。如果用户所需资源存储在该cdn节点服务器上则直接返回用户所需资源即可;如果用户所需资源没有存储在该cdn节点服务器上,则该cdn节点服务器会从源站获取用户所需资源,并且缓存到该cdn节点服务器上再返回给用户。

为了解决cdn缓存同步的问题,采用在资源文件名后面加入一个版本号来刷新更新的资源。当资源内容更新后,如果该cdn节点服务器上已经存在该资源的旧版本,为了让用户访问到最新版本的资源,则需要修改资源文件名,使得旧版本的资源失效。

通过修改资源文件名的方式实现用户通过cdn节点服务器访问的资源永远是最新的。在现有技术中,修改资源文件名这种方式最大的问题就是每次资源更新都需要重新命名静态资源,并且后端服务器在输出链接的时候对应链接的资源的地址也要发生变更。现有的cdn缓存同步方式需要手动修改前后端引用的文件名,然后在前后端同时手动上线部署等一系列操作。这样的cdn缓存同步方式不仅工作量大,而且也因手动修改的原因,易出现错误。



技术实现要素:

本发明要解决的技术问题在于,克服现有的技术的不足,提供自动同步更新内容分发网络中文件名的方法及系统,其能够解决cdn缓存同步中,手动修改前后端引用更新后资源文件名时,工作量大和易出错的问题。

为达到上述技术目的,一方面,本发明提供的自动同步更新内容分发网络中文件名的方法,所述方法包括:

当内容分发网络的数据服务器中资源文件更新后,部署服务器对更新后资源文件的文件名进行前端部署上线,具体包括:

生成新文件名,将更新后资源文件的文件名修改为新文件名;

生成与新文件名对应的配置文件,并分发到后端;

当前端请求后端更新网页时,后端根据新文件名和配置文件输出对应的资源文件链接地址,使网页从内容分发网络的数据服务器获取更新后的资源文件;

以及,内容分发网络的数据服务器将更新后的资源文件缓存至内容分发网络的第一节点服务器中。

另一方面,本发明提供的同步更新cdn节点服务器的文件名的系统,部署服务器和、后端和内容分发网络的数据服务器;

所述部署服务器,用于当内容分发网络的数据服务器中资源文件更新后,对更新后资源文件的文件名进行前端部署上线;具体包括:

文件名模块,用于生成新文件名,将更新后资源文件的文件名修改为新文件名;

配置文件模块,用于生成与新文件名对应的配置文件,并分发到后端;

所述后端,用于当前端请求后端更新网页时,根据新文件名和配置文件输出对应的资源文件链接地址,使网页从内容分发网络的数据服务器获取更新后的资源文件;

所述数据服务器,用于将更新后的资源文件缓存至内容分发网络的第一节点服务器中。

在本发明中,前端和后端通过配置文件关联起来。每次前端所需资源发生变更时,仅需要将配置文件同步到后端,即可实现cdn缓存同步。本发明将现有技术中手动修改更新后资源文件名改为通过配置文件统一管理,当前端所需资源发生变更时,将更新后文件名上线部署,上线部署时生成的配置文件会包含更新后资源文件的信息,并且后端在输出地址链接时会自动读取配置文件。这样后端服务器就不在需要随着前端所需静态资源更新而手动修改地址链接中更新后资源文件信息这些繁琐的操作;并且通过自动关联的方式可有效降低人工修改导致的错误。

附图说明

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

图1为本发明实施例的方法步骤流程图;

图2为本发明实施例的系统结构示意图;

图3为本发明实施例的部署服务器的结构示意图;

图4为本发明实施例的文件名模块结构示意图;

图5为本发明实施例的配置文件模块结构示意图;

图6为本发明实施例的后端结构示意图。

具体实施方式

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

如图1所示,本发明所述的自动同步更新内容分发网络中文件名的方法,所述方法包括:

101、当内容分发网络的数据服务器中资源文件更新后,部署服务器对更新后资源文件的文件名进行前端部署上线,具体包括:

1011、生成新文件名,将更新后资源文件的文件名修改为新文件名;具体如下:

对更新前资源文件的文件名采用信息摘要算法计算出散列值;

将更新前资源文件的文件名加上所述散列值,形成新文件名;

将包含有新文件名的名称文件部署到内容分发网络的数据服务器中;

根据名称文件将内容分发网络的数据服务器中更新后资源文件的文件名修改为新文件名。

1012、生成与新文件名对应的配置文件,并分发到后端;具体如下:

生成所述散列值的地址对应表;

生成包含有所述地址对应表的配置文件;

将所述配置文件通过网络传输的方式分发到后端。

较佳的,所述配置文件存在后端的第二节点服务器的内存中。

102、当前端请求后端更新网页时,后端根据新文件名和配置文件输出对应的资源文件链接地址,使网页从内容分发网络的数据服务器获取更新后的资源文件;具体的:

后端读取并解析所述配置文件;

后端根据从配置文件中解析出的所述地址对应表,将资源文件链接地址修改为更新后的资源文件链接地址;

后端输出更新后的资源文件链接地址至前端;

网页根据前端的更新后的资源文件链接地址,从内容分发网络的数据服务器中拉取更新后的资源文件。

103、内容分发网络的数据服务器将更新后的资源文件缓存至内容分发网络的第一节点服务器中。

如图2至图5所示,本发明所述的自动同步更新内容分发网络中文件名的系统,包括:

部署服务器11、后端12和内容分发网络的数据服务器13;

所述部署服务器11,用于当内容分发网络的数据服务器中资源文件更新后,对更新后资源文件的文件名进行前端部署上线;具体包括:

文件名模块111,用于生成新文件名,将更新后资源文件的文件名修改为新文件名;

配置文件模块112,用于生成与新文件名对应的配置文件,并分发到后端;

所述后端12,用于当前端请求后端更新网页时,根据新文件名和配置文件输出对应的资源文件链接地址,使网页从内容分发网络的数据服务器获取更新后的资源文件;

所述数据服务器13,用于将更新后的资源文件缓存至内容分发网络的第一节点服务器中。

所述文件名模块111,具体包括:

散列值子模块1111,用于对更新前资源文件的文件名采用信息摘要算法计算出散列值;

生成文件名子模块1112,用于将更新前资源文件的文件名加上所述散列值,形成新文件名;

部署子模块1113,用于将包含有新文件名的名称文件部署到内容分发网络的数据服务器中;

更新文件名子模块1114,用于根据名称文件将内容分发网络的数据服务器中更新后资源文件的文件名修改为新文件名。

所述配置文件模块112,具体包括:

对应表子模块1121,用于生成所述散列值的地址对应表;

存储子模块1122,用于生成包含有所述地址对应表的配置文件;

分发子模块1123,用于将所述配置文件通过网络传输的方式分发到后端。

所述后端12,具体包括:

读取模块121,用于读取并解析所述配置文件;

同步地址模块122,用于根据从配置文件中解析出的所述地址对应表,将资源文件链接地址修改为更新后的资源文件链接地址;

输出模块123,用于输出更新后的资源文件链接地址至前端;以及所述网页根据前端的更新后的资源文件链接地址,从内容分发网络的数据服务器中拉取更新后的资源文件。

所述分发子模块1123将配置文件分发到后端的第二节点服务器的内存中。

所述配置文件为manifest.json文件。由于后端的第二节点服务器在高并发的情况频繁的读取磁盘的文件数据会影响性能,manifest.json文件每次都同步同时复制到后端的第二节点服务器的linux系统的/dev/shm目录下一份,后端的程序在接到前端请求时首先会从这个目录中读取,如果没再从磁盘对应的目录获取。/dev/shm之所以较普通的文件目录性能高的原因在于这个目录对应映射的不是磁盘而是内存。

当前端所需资源发生更新时,将所需资源文件的文件名上线部署,生成包含有更新后资源文件的文件名的文件,并部署到cdn的数据服务器;cdn的数据服务器中更新后资源文件的文件名就变成了原资源文件的文件名加上散列(hash)值。这样更新后的资源文件和原资源文件通过名称就可以进行区分。生成与所述更新后资源文件的文件名的文件对应的manifest.json文件,并分发到后端。manifest.json文件中包含有与散列值相关联的对应表。后端每次接收前端请求时,会读取并解析该manifest.json文件,因此对应地,在渲染资源文件地址的链接之前会将原资源的文件名替换成对应更新后资源文件的文件名。这样在前端发送请求后,后端输资源文件链接地址。资源文件链接地址都是更新后资源文件链接地址。所述更新后资源文件链接地址是后端服务器根据manifest.json文件中包含有与散列值相关联的对应表得到。因此,网页会根据更新后资源文件链接地址和更新后资源文件的文件名去源站中拉取前端所需更新后资源文件;然后更新后的资源文件就会缓存至每个cdn节点服务器上。

应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。

在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要比清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。

为使本领域内的任何技术人员能够实现或者使用本发明,上面对所公开实施例进行了描述。对于本领域技术人员来说;这些实施例的各种修改方式都是显而易见的,并且本文定义的一般原理也可以在不脱离本公开的精神和保护范围的基础上适用于其它实施例。因此,本公开并不限于本文给出的实施例,而是与本申请公开的原理和新颖性特征的最广范围相一致。

上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。

本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrativelogicalblock),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrativecomponents),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。

本发明实施例中所描述的各种说明性的逻辑块,或单元都可以通过通用处理器,数字信号处理器,专用集成电路(asic),现场可编程门阵列或其它可编程逻辑系统,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算系统的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。

本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可移动磁盘、cd-rom或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于asic中,asic可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。

在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于ram、rom、eeprom、cd-rom或其它光盘存储、磁盘存储或其它磁性存储系统,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(dsl)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、dvd、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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