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

公司网站建设重要性文山州住房和城乡建设网站

公司网站建设重要性,文山州住房和城乡建设网站,网站的建站公司,长沙口碑好网站建设公司【图解秒杀系列】秒杀技术点——静态化 什么是静态化、静态化的作用如何实现静态化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.yingshimen.cn/news/37463/

相关文章:

  • 识图找图网站优化排名技巧
  • 网红网站建设官网发稿平台渠道
  • 滁州网站建设hi444保山做网站建设
  • 申请网站就是做网站吗网站流量 收益
  • 阿里云建站可不可以备案制作网页然后把文件上传
  • 网站302错误最好的科技资讯网站
  • 企业网站建设的调研wordpress固定连接设置后
  • 南京市网站seo整站优化ip备案信息查询
  • 网站设计建设公司需要什么资质wordpress主题 cms
  • 做电商有哪些网站怎么建设网站百度搜索的到
  • 网站地图怎么做的wordpress后台如何设置为中文
  • 是做网站好还是做游戏好有什么免费的wordpress
  • wordpress创建页面地址设置深圳网站建设网站优化服务
  • 中国做民宿的网站搜索推广是什么意思
  • 网站服务器租用多少钱wordpress更改编辑器
  • 哪个网站做兼职猎头毕业设计代做网站价格
  • 建设一个类似淘宝的网站网站建设服务中企动力推荐
  • 临汾网站建设电话网站浏览排名
  • 领券购买网站是怎么做的自定义颜色 网站
  • 如何用ip地址做网站建个公司网站多少钱
  • 网站代码检查网站做用户登录
  • 密云区免费网站建设二道网站建设
  • 上海网站建设网页制作培训网上找客户渠道
  • 免费做公司电子画册的网站个人网站制作体会
  • 物流网站设计论文网页怎么做才美观
  • 网站建设都用那些软件wordpress转换emlog
  • 利用js做简单的网站怎么样做网页设计
  • 建设网站浩森宇特购物网站英语
  • 湖北住房和城乡建设厅官方网站高端定制网站公司哪家好
  • 查看网站是什么语言做的做婚恋网站有哪些