当前位置: 首页 > news >正文

网站访问量 wordpressWordPress vidropro

网站访问量 wordpress,WordPress vidropro,建筑营销型网站,简述网站开发工作流程【图解秒杀系列】秒杀技术点——静态化 什么是静态化、静态化的作用如何实现静态化FreeMarker、Thymleaf处理流程问题 OpenResty Lualua_shared_dict lua-resty-template处理流程具体操作 什么是静态化、静态化的作用 静态化就是指通过某种静态化技术#xff0c;将原本… 【图解秒杀系列】秒杀技术点——静态化 什么是静态化、静态化的作用如何实现静态化FreeMarker、Thymleaf处理流程问题 OpenResty Lualua_shared_dict lua-resty-template处理流程具体操作 什么是静态化、静态化的作用 静态化就是指通过某种静态化技术将原本需要动态渲染生成的HTML页面固定下来变成一个静态页面文件后续请求该页面都直接返回该静态页面。 首先要有模板和数据然后根据给定的模板和数据通过模板引擎就能生成对应的静态HTML文件。 生成的静态HTML页面可以推到Nginx上缓存到Nginx本地。当用户请求访问对应的页面时Nginx直接返回缓存在本地的静态页面这样响应速度就大大提升。 在秒杀场景中商品详情页就可以进行静态化处理提升商品详情页的访问速度。 如何实现静态化 FreeMarker、Thymleaf 一种方式是通过FreeMarker、Thymleaf这种Java语言的模板引擎实现。 处理流程 FreeMarker、Thymleaf需要跑在一个Tomcat进程里面当接收到请求时通过Freemarker、Thymleaf等模板引擎技术根据指定的模板和数据生成静态HTML页面返回客户端。 另外我们可以监听MQ上的修改操作消息当监听到有修改操作发生时就在异步工程里面使用模板引擎生成静态HTML页面然后推到Nginx上缓存到Nginx本地。 问题 但是这种方案会有几个问题。 首先第一个问题是如果我们修改了模板那么使用该模板生成的静态HTML页面全部都要删除或刷新。 第二个问题是如果我们有多个Nginx则要同时推送给多个Nginx。 如果是多Nginx场景下碰上批量刷新那这个操作就很复杂了。 OpenResty Lua 为了解决上面的问题就有了一个更好的解决方案那就是OpenResty加Lua脚本。 OpenResty是基于Nginx进行二次开发的Web平台支持执行Lua脚本并且内部集成了许多Lua库和第三方模块。 lua_shared_dict lua-resty-template 在这个方案下我们用到OpenResty的两个重要的东西一个是“lua_shared_dict”指令、lua-resty-template模块。 lua_shared_dict用于声明一个共享内存区域可以将其作为缓存空间使用比如“lua_shared_dict my_cache 128m;”表示声明一个128m大小名为“my_cache”的内存共享区域。 而lua-resty-template模块的作用就是一个模板引擎它的作用与FreeMarker或者Thymleaf类似只是它是跑在OpenResty内部而不是后端服务。 处理流程 那么此时处理流程如下 客户端的请求被OpenResty接收OpenResty在location块中通过content_by_lua_file命令指定执行的lua脚本lua脚本被执行首先判断lua_shared_dict命令声明的缓存空间中是否缓存了对应的数据如果缓存命中则直接通过lua-resty-template模块进行模板渲染生成静态html文件并返回如果缓存不命中则请求后端服务获取对应数据再缓存到lua_shared_dict命令声明的缓存空间中然后再进行模板渲染生成静态html文件并返回 这么做的好处就是: 即使模板变了我们只需要更新OpenResty上的模板即可由于最终的html文件是由OpenResty动态渲染生成的所以只要更新了模板生成的html就会更新。由于是OpenResty自己通过模板渲染生成的html而不是后端服务生成的因此不再需要推送ng的这一步操作。 具体操作 在nginx.conf文http模块中加入 lua_package_path ../lualib/?.lua;;; lua_package_cpath ../lualib/?.so;;; include lua.conf;lua.conf lua_shared_dict my_cache 128m; server {listen 222;set $template_location /templates;set $template_root D:/ProgramData/nginx/;location /product {default_type text/html;charsetUTF‐8;lua_code_cache on;content_by_lua_file D:/ProgramData/nginx/product.lua;} }product.lua local uri_args ngx.req.get_uri_args()local productId uri_args[productId]local cache_ngx ngx.shared.my_cachelocal productCacheKey product_info_..productIdlocal productCache cache_ngx:get(productCacheKey)if productCache or productCache nil thenlocal http require(resty.http)local httpc http.new()local resp, err httpc:request_uri(http://127.0.0.1:8866,{method GET,path /pms/productInfo/..productId})productCache resp.bodylocal expireTime math.random(600,1200)cache_ngx:set(productCacheKey, productCache, expireTime)endlocal cjson require(cjson)local productCacheJSON cjson.decode(productCache)ngx.say(productCache);local context {id productCacheJSON.data.id,name productCacheJSON.data.name,price productCacheJSON.data.price,pic productCacheJSON.data.pic,detailHtml productCacheJSON.data.detailHtml}local template require(resty.template)template.render(product.html, context) html模板 htmlheadmeta http‐equivContent‐Type contenttext/html; charsetutf‐8 //headbodyh1商品id: {* id *}br/商品名称: {* name *}br/商品价格: {* price *}br/商品库存: img src{* pic *}/br/商品描述: {* detailHtml *}br//h1/body /html
http://www.hkea.cn/news/14449532/

相关文章:

  • 创意网站页面模板网站建设开发
  • 用商城系统做教育网站泰安中呼网站建设有限公司 概况
  • 百度网站排名全掉怎么使用微wordpress
  • 网站建设信息介绍庆阳市住房和城乡建设局网站
  • pycharm 做网站哪个好受欢迎的合肥网站建设
  • 网站建设的资源整合与系统设计徐州微网站开发
  • 做网站的没有进项票怎么办wordpress结婚模板
  • 苏州公司做变更网站如何开发游戏软件
  • 杭州网站建设制作公司wordpress主题 机械
  • 做汽车养护的网站途牛旅行网站建设策划书
  • 网络服务都有哪些上海优化外包公司
  • 新建网站的评估工业和信息化部产业发展促进中心
  • 东莞app制作公司seo营销排名
  • 对于高校类建设网站的要求做淘宝券网站
  • 大学什么专业做网站旅游网站国内外研究现状
  • 如何把代码放在网站首页教程牡丹江制作网站
  • 官方网站建设专家磐石网络广东seo站外推广折扣
  • 做网站销售有前景网络设计山西分公司
  • 建设工程检测预约网站网站建站公司订单多吗
  • 中关村网站建设的公司桂林亿星网络科技公司
  • 青岛正规网站建设哪家好怎么做租号网站
  • 吴中区建设局网站电子商务网站规划与建设试题
  • 高端网站改版请问门户网站是什么意思
  • 建设网站有什么原则网站模板如何制作
  • 鲜花网站设计网站地图制作工具
  • 成都市网站设做网站一些专业术语
  • 网站建设和服务器运营湘潭网站建设开发
  • app要有网站做基础一般网站建设流程
  • 温州网站制作多少钱wordpress禁止用户注册
  • 国外建设网站情况桂林北站怎么去阳朔