CN109977084B - 一种基于文件缓存器的页面静态化方法 - Google Patents

一种基于文件缓存器的页面静态化方法 Download PDF

Info

Publication number
CN109977084B
CN109977084B CN201910253712.7A CN201910253712A CN109977084B CN 109977084 B CN109977084 B CN 109977084B CN 201910253712 A CN201910253712 A CN 201910253712A CN 109977084 B CN109977084 B CN 109977084B
Authority
CN
China
Prior art keywords
file
page
category
service
cache server
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
Application number
CN201910253712.7A
Other languages
English (en)
Other versions
CN109977084A (zh
Inventor
吴锁明
徐晓瑀
李强
马先国
罗义斌
杨冰
孙力斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Lianchuang Beidou Technology Application Research Institute Co ltd
Original Assignee
Nanjing Lianchuang Beidou Technology Application Research Institute Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing Lianchuang Beidou Technology Application Research Institute Co ltd filed Critical Nanjing Lianchuang Beidou Technology Application Research Institute Co ltd
Priority to CN201910253712.7A priority Critical patent/CN109977084B/zh
Publication of CN109977084A publication Critical patent/CN109977084A/zh
Application granted granted Critical
Publication of CN109977084B publication Critical patent/CN109977084B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management 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 (7)

1.一种基于文件缓存器的页面静态化方法,其特征在于,包括如下步骤:
步骤1:前端解析请求参数并判断文件缓存服务器缓存状态;
步骤2:文件缓存服务器缓存后端模板静态化服务并持久化;
步骤3:后端根据页面模板和模板的数据来源进行数据绑定并在文件服务器中生成镜像文件;
步骤4:将生成的镜像文件返回文件缓存服务器;
步骤5:根据后端状态通知淘汰文件缓存服务器缓存页面;
步骤5包括:
步骤5.1:后端静态化服务接收到业务系统数据变化通知,后端静态化服务获取相应的数据变更身份标识和类目标识,静态化服务订阅的单条数据中只有类目标识则表示需要进行类目淘汰,如单条数据中包含类目标识和数据身份标识则表示需要进行指定淘汰;
步骤5.2:静态化服务判断出如是类目淘汰,则组装批量淘汰参数,将批量淘汰参数通知文件缓存服务器和MongoDB;如不是类目淘汰,则根据身份标识到检索MongoDB中匹配需淘汰的页面并将检索出来的数据设置为过期;文件缓存服务器服务提供两个HTTP接口,一个接口为类目淘汰接口,一个为指定页面淘汰接口;类目淘汰接口入参为typeName,接口入参typeName为文件缓存服务器类目缓存目录名称,指定页面淘汰接口入参为uri,接口入参uri为文件缓存服务器页面缓存路径地址;
步骤5.3:文件缓存服务器通过HTTP请求方式接收静态服务的淘汰请求,如接收到类目淘汰请求,则根据传递过来的typeName参数,然后查找持久化页面相对目录中是否存在typeName值的文件夹,找到后执行批量删除目录,如接收到指定页面淘汰请求,解析uri参数,对获取到的uri参数进行分割处理,找到相应的缓存文件进行删除;
所述文件缓存服务器为nginx。
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缓存协议设置前端页面有效期,当该文件超过有效期之后文件缓存服务器主动淘汰掉。
CN201910253712.7A 2019-03-30 2019-03-30 一种基于文件缓存器的页面静态化方法 Active CN109977084B (zh)

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 CN109977084A (zh) 2019-07-05
CN109977084B true 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)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110516190A (zh) * 2019-08-30 2019-11-29 深圳点猫科技有限公司 生成静态网页的方法与装置
CN110837612B (zh) * 2019-11-01 2023-05-12 腾讯科技(深圳)有限公司 统一资源标识符uri数据的获取方法和装置、存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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应用的页面数据处理方法及设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7076500B2 (en) * 2003-06-30 2006-07-11 David Gallant Selective file caching method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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应用的页面数据处理方法及设备

Also Published As

Publication number Publication date
CN109977084A (zh) 2019-07-05

Similar Documents

Publication Publication Date Title
US10839038B2 (en) Generating configuration information for obtaining web resources
US7809710B2 (en) System and method for extracting content for submission to a search engine
US8566788B2 (en) Predictive prefetching to improve parallelization of data retrieval subtasks
US7320023B2 (en) Mechanism for caching dynamically generated content
JP4366040B2 (ja) ネットワークサービスシステム、サーバ及びプログラム
JP4739455B2 (ja) 文書管理方法
US8195767B2 (en) Method and software for reducing server requests by a browser
US6760694B2 (en) Automatic information collection system using most frequent uncommon words or phrases
US20110035553A1 (en) Method and system for cache management
US20110087647A1 (en) System and method for providing web search results to a particular computer user based on the popularity of the search results with other computer users
US20080133215A1 (en) Method and system of interpreting and presenting web content using a voice browser
US20020143808A1 (en) Intelligent document linking system
US20100125781A1 (en) Page generation by keyword
CN109977084B (zh) 一种基于文件缓存器的页面静态化方法
TW437205B (en) An internet caching system and a method and an arrangement in such a system
US7793220B1 (en) Scalable derivative services
CN112131294A (zh) 一种快速生成接口的方法、系统及其装置
CN110188291B (zh) 基于代理日志的文档处理
JP4642903B2 (ja) 文脈認識が強化されたメッセージ変換システムおよび方法
CN110955855A (zh) 一种信息拦截的方法、装置及终端
JP2000285052A (ja) Url変換方法および装置
CN113448649B (zh) 一种基于Redis的首页数据加载的服务器及方法
CN106919600A (zh) 一种失效网址访问方法及终端
KR20000049411A (ko) 검색사이트의 검색결과 광고장치 및 그 방법
US10839028B2 (en) System for querying web pages using a real time entity authentication engine

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

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.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant