CN109977084A - 一种基于文件缓存器的页面静态化方法 - Google Patents
一种基于文件缓存器的页面静态化方法 Download PDFInfo
- Publication number
- CN109977084A CN109977084A CN201910253712.7A CN201910253712A CN109977084A CN 109977084 A CN109977084 A CN 109977084A CN 201910253712 A CN201910253712 A CN 201910253712A CN 109977084 A CN109977084 A CN 109977084A
- Authority
- CN
- China
- Prior art keywords
- page
- file
- static
- classification
- data
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于文件缓存器的页面静态化方法,包括:解析请求参数并判断文件缓存服务器缓存状态;文件缓存服务器缓存后端模板静态化服务并持久化;后端根据页面模板和模板的数据来源进行数据绑定并在文件服务器中生成镜像文件;将生成的镜像文件返回文件缓存服务器,并根据http缓存协议设置前端页面有效期;根据后端状态通知淘汰文件缓存服务器缓存页面。本发明能够减少对后端服务的调用次数,减少接口数据网络输出,降低数据库压力。
Description
技术领域
本发明涉及一种基于文件缓存器的页面静态化方法,属于电子信息技术领域。
背景技术
在前后端分离的前提下,前端渲染界面都是通过JS异步调用后端接口返回后,经过页面重新组装渲染后显示。当某些前端页面访问频率较高但变化频率较低的情况下对后端服务及数据库使用有较高的浪费,所以在这样的情况下就需要对动态页面进行静态化处理;同时在页面缓存的过程中常用的缓存技术采用的是定期实现规则,无法实时的更新相应的缓存,因此在这样的情况下就需要要一个方法在页面需要失效的时候及时淘汰掉相应的页面缓存。
发明内容
本发明提供一种基于文件缓存器的页面静态化方法,通过文件缓存服务器缓存机制和模板静态化技术的组合应用降低服务端和数据库压力,同时及时淘汰掉失效的缓存。
为实现上述目的,本发明采用如下技术方案:
一种基于文件缓存器的页面静态化方法,包括如下步骤:
步骤1:前端解析请求参数并判断文件缓存服务器缓存状态;
步骤2:文件缓存服务器缓存后端模板静态化服务并持久化;
步骤3:后端根据页面模板和模板的数据来源进行数据绑定并在文件服务器中生成镜像文件;
步骤4:将生成的镜像文件返回文件缓存服务器;
步骤5:根据后端状态通知淘汰文件缓存服务器缓存页面。
优选的,步骤1包括:
步骤1.1:前端解析请求参数;
步骤1.2:文件缓存服务器根据请求参数优先查看本地是否存在相应的页面缓存,如已存在则立即返回本地的静态页面缓存,不存在则访问后端静态化服务。
优选的,步骤3包括:
步骤3.1:后端静态化服务接收到静态页面提取请求时,静态化服务根据访问地址查找到对应的模板页面,并提取该模板页面的身份标识和数据来源;
步骤3.2:将模板和数据进行绑定生成静态页面字符串,每一种模板页面生成的静态页面归属一个类目;
步骤3.3:后端静态化服务采用MongoDB作为文件服务器,在MongoDB中根据步骤3.2生成的静态页面字符串生成镜像文件,同时将步骤3.1中提取的该静态页面的身份标识设置为该静态页面的淘汰机制参数并保存到MongoDB中。
优选的,所述身份标识的配置提取规则从请求地址中提取。
优选的,所述数据来源的提取规则通过配置调用规则实现,调用规则有两类,一类为外部接口,一类为外部数据库;
外部接口配置规则:数据别名(name),配置请求地址(url),请求方式(method),请求参数(param),互联网媒体类型(contentType),后端程序通过代码动态调用远程接口获取数据;其中url、param设置占位符以传递变量,变量参数为步骤3.1中获取的身份标识别名,后期通过值替换的方式组装正式的请求参数和请求地址;
外部数据库配置规则:数据别名(name),配置数据库(url),用户名(username),密码(password),执行语句(sql),后端程序通过代码远程连接数据库执行语句获取数据,其中sql设置占位符以传递变量,变量参数为步骤3.1获取的身份标识别名,后期通过值替换的方式还原正式查询语句。
优选的,步骤3.2中类目设置在模板配置时设置,类目管理通过上下级管理;每一个类目配置内容包含如下:类目编码(categoryId),上级编码(parentId),类目名称(categoryName),URL匹配正则表达式(expression),类目编码不得重复。
优选的,步骤4中,将生成的镜像文件返回文件缓存服务器时根据http缓存协议设置前端页面有效期,当该文件超过有效期之后文件缓存服务器主动淘汰掉。
优选的,步骤5包括:
步骤5.1:后端静态化服务接收到业务系统数据变化通知,后端静态化服务获取相应的数据变更身份标识和类目标识,静态化服务订阅的单条数据中只有类目标识则表示需要进行类目淘汰,如单条数据中包含类目标识和数据身份标识则表示需要进行指定淘汰;
步骤5.2:静态化服务判断出如是类目淘汰,则组装批量淘汰参数,将批量淘汰参数通知文件缓存服务器和MongoDB;如不是类目淘汰,则根据身份标识到检索MongoDB中匹配需淘汰的页面并将检索出来的数据设置为过期;文件缓存服务器服务提供两个HTTP接口,一个接口为类目淘汰接口,一个为指定页面淘汰接口;类目淘汰接口入参为typeName,该参数值为文件缓存服务器类目缓存目录名称,指定页面淘汰接口入参为uri,该参数值为文件缓存服务器页面缓存路径地址;
步骤5.3:文件缓存服务器通过HTTP请求方式接收静态服务的淘汰请求,如接收到类目淘汰请求,则根据传递过来的typeName参数,然后查找持久化页面相对目录中是否存在typeName值得文件夹,找到后执行批量删除目录,如接收到指定页面淘汰请求,解析uri参数,对获取到的uri参数进行分割处理,找到相应的缓存文件进行删除。
优选的,所述文件缓存服务器为nginx。
有益效果:
本发明减少对后端服务的调用次数,减少接口数据网络输出,降低数据库压力。
附图说明
图1为本方法中实施例提供的文件缓存服务器静态化的工作流程图;
图2为本方法中实施例提供的正向访问流程图;
图3为本方法中实施例提供的逆向淘汰流程图。
具体实施方式
下面结合实例对本发明做更进一步的解释。
本发明主要有两个工作流程,一个是正向访问流程,一个是逆向淘汰流程。
1、正向访问流程实现逻辑如下,相关流程图见图2:
1)文件缓存服务器获取静态化页面,在获取静态化页面的时候优先查看本地是否存在相应的页面缓存,如已存在则立即返回本地的静态页面缓存,不存在则访问后端静态化服务提取静态页面缓存返回并在本地持久化页面,该持久化页面设置固定的有效期,当该文件超过有效期之后文件缓存服务器主动淘汰掉,同时该持久化界面支持事件淘汰。
2)后端静态化服务接收到静态页面提取请求时,静态化服务根据访问地址查找到对应的模板页面,并提取该模板页面的身份标识和数据来源,数据来源可以是外部的第三方HTTP接口,也可以是第三方数据库,每个模板可以有多个数据来源。将模板和数据进行绑定生成静态页面字符串,每一种模板页面生成的静态页面归属一个类目(Category)。类目设置在模板配置时设置,类目管理通过上下级管理,便于后期统一管理。
每一个类目配置内容包含如下:类目编码(categoryId),上级编码(parentId),类目名称(categoryName),URL匹配正则表达式(expression),类目编码不得重复。
例如商品详情请求地址为/goods/1.html,其中goods代表的就是categoryId,文件缓存服务器将会按照请求地址的请求目录决定存储目录,这次的存储目录就是相对目录下的/goods目录中缓存1.html文件。
具体步骤包括:
a)身份标识根据配置提取规则(正则表达式)从请求地址中提取,提取规则按照需要可以配置多个,具体提取方式如下实例:
假如要在请求地址为/goods/1.html中提取商品分类id和商品id,提取规则有一条,一条为商品分类id=,/goods/(.+?).html,匹配后提取结果为1,则身份标识为goodsId=1,
b)数据来源提取规则通过配置调用规则实现,调用规则有两类一类为外部接口,一类为外部数据库。
i.外部接口配置规则:数据别名(name),配置请求地址(url),请求方式(method),请求参数(param),互联网媒体类型(contentType),后端程序通过代码动态调用远程接口获取数据。其中url、param可以设置占位符以传递变量,变量参数为步骤a)获取的身份标识别名,后期通过值替换的方式组装正式的请求参数和请求地址。
ii.外部数据库配置规则:数据别名(name),配置数据库url,用户名(username),密码(password),执行语句(sql),后端程序通过代码远程连接数据库执行语句获取数据,其中sql可以设置占位符以传递变量,变量参数为上一步获取的身份标识别名,后期通过值替换的方式还原正式查询语句。
c)将步骤b)获取的数据根据数据来源别名绑定到模板,生成静态页面字符串。
3)后端静态化服务采用MongoDB作为持久化服务器,在MongoDB中根据上一步生成的静态页面字符串生成镜像文件,同时根据上一步骤静态页面生成逻辑中提取该静态页面的身份标识设置为该静态页面的淘汰机制参数并保存到MongoDB中,用作逆向淘汰流程的淘汰参数。
4)将生成的镜像文件返回给文件缓存服务器。
2、逆向淘汰流程实现逻辑如下,相关流程图见图3:
1)后端静态化服务通过消息队列接收业务系统数据变化通知,当业务系统对数据进行新增修改操作时,将修改的数据身份标识及相应的类目标识通过消息队列通知后端静态化服务,后端静态化服务通过订阅消息队列获取相应的数据变更身份标识和类目标识。静态化服务订阅的单条数据中只有类目标识则表示需要进行类目淘汰,如单条数据中包含类目标识和数据身份标识则表示需要进行指定淘汰。
2)静态化服务判断出如是类目淘汰,则组装批量淘汰参数,将批量淘汰参数通知文件缓存服务器和MongoDB。如不是类目淘汰,则根据身份标识到检索MongoDB中匹配需淘汰的页面并将检索出来的数据设置为过期,同时向文件缓存服务器发送淘汰请求。文件缓存服务器服务将提供两个HTTP接口,一个接口为类目淘汰接口,一个为指定页面淘汰接口。类目淘汰接口入参为typeName,该参数值为文件缓存服务器类目缓存目录名称,指定页面淘汰接口入参为uri,该参数值为文件缓存服务器页面缓存路径地址。
3)文件缓存服务器通过HTTP请求方式接收静态服务的淘汰请求,如接收到类目淘汰请求,则根据传递过来的typeName参数,然后查找持久化页面相对目录中是否存在typeName值得文件夹,找到后执行批量删除目录,如接收到指定页面淘汰请求,解析uri参数,对获取到的uri参数进行分割处理,找到相应的缓存文件进行删除。
以上为本发明的技术实施例和技术特点,仅用于说明本发明的技术方案而非限制。然而本领域技术人员仍可能基于本发明的教示和揭示内容而作出对本发明的技术方案的修改和等同替换。因此,本发明的保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替代和修正,并为上述权利要求书所涵盖。
Claims (9)
1.一种基于文件缓存器的页面静态化方法,其特征在于,包括如下步骤:
步骤1:前端解析请求参数并判断文件缓存服务器缓存状态;
步骤2:文件缓存服务器缓存后端模板静态化服务并持久化;
步骤3:后端根据页面模板和模板的数据来源进行数据绑定并在文件服务器中生成镜像文件;
步骤4:将生成的镜像文件返回文件缓存服务器;
步骤5:根据后端状态通知淘汰文件缓存服务器缓存页面。
2.根据权利要求1所述的一种基于文件缓存器的页面静态化方法,其特征在于,步骤1包括:
步骤1.1:前端解析请求参数;
步骤1.2:文件缓存服务器根据请求参数优先查看本地是否存在相应的页面缓存,如已存在则立即返回本地的静态页面缓存,不存在则访问后端静态化服务。
3.根据权利要求1所述的一种基于文件缓存器的页面静态化方法,其特征在于,步骤3包括:
步骤3.1:后端静态化服务接收到静态页面提取请求时,静态化服务根据访问地址查找到对应的模板页面,并提取该模板页面的身份标识和数据来源;
步骤3.2:将模板和数据进行绑定生成静态页面字符串,每一种模板页面生成的静态页面归属一个类目;
步骤3.3:后端静态化服务采用MongoDB作为文件服务器,在MongoDB中根据步骤3.2生成的静态页面字符串生成镜像文件,同时将步骤3.1中提取的该静态页面的身份标识设置为该静态页面的淘汰机制参数并保存到MongoDB中。
4.根据权利要求3所述的一种基于文件缓存器的页面静态化方法,其特征在于,所述身份标识的配置提取规则从请求地址中提取。
5.根据权利要求3所述的一种基于文件缓存器的页面静态化方法,其特征在于,所述数据来源的提取规则通过配置调用规则实现,调用规则有两类,一类为外部接口,一类为外部数据库;
外部接口配置规则:数据别名(name),配置请求地址(url),请求方式(method),请求参数(param),互联网媒体类型(contentType),后端程序通过代码动态调用远程接口获取数据;其中url、param设置占位符以传递变量,变量参数为步骤3.1中获取的身份标识别名,后期通过值替换的方式组装正式的请求参数和请求地址;
外部数据库配置规则:数据别名(name),配置数据库(url),用户名(username),密码(password),执行语句(sql),后端程序通过代码远程连接数据库执行语句获取数据,其中sql设置占位符以传递变量,变量参数为步骤3.1获取的身份标识别名,后期通过值替换的方式还原正式查询语句。
6.根据权利要求3所述的一种基于文件缓存器的页面静态化方法,其特征在于,步骤3.2中类目设置在模板配置时设置,类目管理通过上下级管理;每一个类目配置内容包含如下:类目编码(categoryId),上级编码(parentId),类目名称(categoryName),URL匹配正则表达式(expression),类目编码不得重复。
7.根据权利要求1所述的一种基于文件缓存器的页面静态化方法,其特征在于,步骤4中,将生成的镜像文件返回文件缓存服务器时根据http缓存协议设置前端页面有效期,当该文件超过有效期之后文件缓存服务器主动淘汰掉。
8.根据权利要求3所述的一种基于文件缓存器的页面静态化方法,其特征在于,步骤5包括:
步骤5.1:后端静态化服务接收到业务系统数据变化通知,后端静态化服务获取相应的数据变更身份标识和类目标识,静态化服务订阅的单条数据中只有类目标识则表示需要进行类目淘汰,如单条数据中包含类目标识和数据身份标识则表示需要进行指定淘汰;
步骤5.2:静态化服务判断出如是类目淘汰,则组装批量淘汰参数,将批量淘汰参数通知文件缓存服务器和MongoDB;如不是类目淘汰,则根据身份标识到检索MongoDB中匹配需淘汰的页面并将检索出来的数据设置为过期;文件缓存服务器服务提供两个HTTP接口,一个接口为类目淘汰接口,一个为指定页面淘汰接口;类目淘汰接口入参为typeName,该参数值为文件缓存服务器类目缓存目录名称,指定页面淘汰接口入参为uri,该参数值为文件缓存服务器页面缓存路径地址;
步骤5.3:文件缓存服务器通过HTTP请求方式接收静态服务的淘汰请求,如接收到类目淘汰请求,则根据传递过来的typeName参数,然后查找持久化页面相对目录中是否存在typeName值得文件夹,找到后执行批量删除目录,如接收到指定页面淘汰请求,解析uri参数,对获取到的uri参数进行分割处理,找到相应的缓存文件进行删除。
9.根据权利要求1-8任一所述的一种基于文件缓存器的页面静态化方法,其特征在于,所述文件缓存服务器为nginx。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910253712.7A CN109977084B (zh) | 2019-03-30 | 2019-03-30 | 一种基于文件缓存器的页面静态化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910253712.7A CN109977084B (zh) | 2019-03-30 | 2019-03-30 | 一种基于文件缓存器的页面静态化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109977084A true CN109977084A (zh) | 2019-07-05 |
CN109977084B CN109977084B (zh) | 2020-05-15 |
Family
ID=67081876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910253712.7A Active CN109977084B (zh) | 2019-03-30 | 2019-03-30 | 一种基于文件缓存器的页面静态化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109977084B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110516190A (zh) * | 2019-08-30 | 2019-11-29 | 深圳点猫科技有限公司 | 生成静态网页的方法与装置 |
CN110837612A (zh) * | 2019-11-01 | 2020-02-25 | 腾讯科技(深圳)有限公司 | 统一资源标识符uri数据的获取方法和装置、存储介质 |
CN112905175A (zh) * | 2021-02-08 | 2021-06-04 | 中国工商银行股份有限公司 | 一种页面生成方法、装置及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040267702A1 (en) * | 2003-06-30 | 2004-12-30 | Chaparral Network Storage, Inc. | Selective file caching method |
CN102662993A (zh) * | 2012-03-14 | 2012-09-12 | 北京神州数码思特奇信息技术股份有限公司 | 一种页面数据提供方法 |
CN103064932A (zh) * | 2012-12-24 | 2013-04-24 | 乐视网信息技术(北京)股份有限公司 | 一种静态化页面的处理系统和方法 |
CN103116618A (zh) * | 2013-01-28 | 2013-05-22 | 南开大学 | 基于客户端持久缓存的远程文件系统镜像方法及系统 |
CN106294365A (zh) * | 2015-05-15 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 一种单页web应用的页面数据处理方法及设备 |
-
2019
- 2019-03-30 CN CN201910253712.7A patent/CN109977084B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040267702A1 (en) * | 2003-06-30 | 2004-12-30 | Chaparral Network Storage, Inc. | Selective file caching method |
CN102662993A (zh) * | 2012-03-14 | 2012-09-12 | 北京神州数码思特奇信息技术股份有限公司 | 一种页面数据提供方法 |
CN103064932A (zh) * | 2012-12-24 | 2013-04-24 | 乐视网信息技术(北京)股份有限公司 | 一种静态化页面的处理系统和方法 |
CN103116618A (zh) * | 2013-01-28 | 2013-05-22 | 南开大学 | 基于客户端持久缓存的远程文件系统镜像方法及系统 |
CN106294365A (zh) * | 2015-05-15 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 一种单页web应用的页面数据处理方法及设备 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110516190A (zh) * | 2019-08-30 | 2019-11-29 | 深圳点猫科技有限公司 | 生成静态网页的方法与装置 |
CN110837612A (zh) * | 2019-11-01 | 2020-02-25 | 腾讯科技(深圳)有限公司 | 统一资源标识符uri数据的获取方法和装置、存储介质 |
CN110837612B (zh) * | 2019-11-01 | 2023-05-12 | 腾讯科技(深圳)有限公司 | 统一资源标识符uri数据的获取方法和装置、存储介质 |
CN112905175A (zh) * | 2021-02-08 | 2021-06-04 | 中国工商银行股份有限公司 | 一种页面生成方法、装置及设备 |
CN112905175B (zh) * | 2021-02-08 | 2024-05-28 | 中国工商银行股份有限公司 | 一种页面生成方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109977084B (zh) | 2020-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109977084A (zh) | 一种基于文件缓存器的页面静态化方法 | |
CN106982150B (zh) | 一种基于Hadoop的移动互联网用户行为分析方法 | |
CN108197237A (zh) | 可视化数据采集到展现系统 | |
CN108509326B (zh) | 一种基于nginx日志的服务状态统计方法及系统 | |
CN106886371B (zh) | 缓存数据处理方法及装置 | |
CN106951557B (zh) | 日志关联方法、装置和应用其的计算机系统 | |
CN102955802B (zh) | 从数据报表中获取数据的方法和装置 | |
CN105389352A (zh) | 日志处理方法和装置 | |
CN111221815B (zh) | 一种基于脚本的web服务分页数据采集系统 | |
CN103034735A (zh) | 一种大数据分布式文件导出方法 | |
CN103995807A (zh) | 一种基于Web架构下海量数据查询和二次处理的方法 | |
CN103927314A (zh) | 一种数据批量处理的方法和装置 | |
CN112131294A (zh) | 一种快速生成接口的方法、系统及其装置 | |
CN109688205A (zh) | 网页资源的拦截方法及装置 | |
CN106021580A (zh) | Impala 基于Hadoop集群日志分析方法和系统 | |
CN101916283B (zh) | 由动态网页上获取链接信息的方法及其服务器 | |
CN116974948B (zh) | 业务系统测试方法、系统、设备和介质 | |
CN108549714B (zh) | 一种数据处理方法及装置 | |
CN109583615A (zh) | 会议室的预订方法、系统及服务器、计算机可读存储介质 | |
Doddegowda et al. | Extraction of behavioral patterns from pre-processed web usage data for web personalization | |
JP4642903B2 (ja) | 文脈認識が強化されたメッセージ変換システムおよび方法 | |
CN114500002B (zh) | 一种基于ldap的集群账号分配方法及系统 | |
CN110933145A (zh) | 异地调度方法、装置、设备及介质 | |
CN108874856B (zh) | 一种页面生成系统、方法及服务器 | |
US20220398128A1 (en) | Distributed task assignment in a cluster computing system |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 210043 floor 2, No.6 Huida Road, Jiangbei new district, Nanjing City, Jiangsu Province Applicant after: NANJING LIANCHUANG BEIDOU TECHNOLOGY APPLICATION RESEARCH INSTITUTE Co.,Ltd. Address before: 210036 14th Floor, Block A, Lianchuang Building, 18 Jihui Road, Gulou District, Nanjing City, Jiangsu Province Applicant before: NANJING LIANCHUANG BEIDOU TECHNOLOGY APPLICATION RESEARCH INSTITUTE Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |