专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

电商架构实战(一)

  一、架构讲解
  大型电商系统架构图:
  1、缓存架构
  nginx本地缓存redis分布式缓存tomcat堆缓存
  2、缓存数据库读写模式读的时候先从缓存读,没有再去读数据库,从数据库读到了之后写入缓存更新数据时,需要删除缓存
  更新数据时删除缓存原因:因为有很多时候,缓存不仅仅是数据库取出来的值,而是经过复杂的计算了的。那么更新的代价就比较大。
  如果更新了100次数据,但是实际只访问几次,那么每次都更新缓存就不划算了。不如等他访问的时候再计算。
  3、Nginx双层缓存模型
  第一层是ngnix分发服务器,第二层是ngnix后端服务器,可以避免每个商品走不同得ngnix,提升ngnix本地缓存命中率二、Nginx双层缓存架构
  NginxLua部署
  1、部署openrestymkdirpusrserverscdusrserversyuminstallyreadlinedevelpcredevelopenssldevelgccwgethttp:openresty。orgdownloadngxopenresty1。7。7。2。tar。gztarxzvfngxopenresty1。7。7。2。tar。gzcdusrserversngxopenresty1。7。7。2cdbundleLuaJIT2。120150120makecleanmakemakeinstalllnsfluajit2。1。0alphausrlocalbinluajitcdbundlewgethttps:github。comFRiCKLEngxcachepurgearchive2。3。tar。gztarxvf2。3。tar。gzcdbundlewgethttps:github。comyaoweibinnginxupstreamcheckmodulearchivev0。3。0。tar。gztarxvfv0。3。0。tar。gzcdusrserversngxopenresty1。7。7。2。configureprefixusrserverswithhttprealipmodulewithpcrewithluajitaddmodule。bundlengxcachepurge2。3addmodule。bundlenginxupstreamcheckmodule0。3。0j2makemakeinstallcdusrserversllusrserversluajitusrserverslualibusrserversnginxusrserversnginxsbinnginxV启动nginx:usrserversnginxsbinnginx
  注意:启动遇到这个问题
  〔rootcentos01conf〕
  nginx:〔error〕invalidPIDnumberinusrserversnginxlogsnginx。pid
  解决方法:usrserversnginxsbinnginxcusrserversnginxconfnginx。conf
  2、配置ngnixlua
  1。编辑nginx配置
  viusrserversnginxconfnginx。conf
  在http部分添加:luapackagepathusrhellolualib?。lua;;;luapackagecpathusrhellolualib?。so;;;includeusrhellohello。conf;创建hello。confmkdirusrhello
  编辑vihello。confserver{listen80;servername;locationhello{defaulttypetexthtml;contentbyluafileusrhelloluahello。lua;}}
  编辑hello。lua
  mkdirusrhellolua
  cdusrhellolua
  vihello。luangx。say(helloworld);
  拷贝所需资源cprusrserverslualibusrhello
  重新加载配置usrserversnginxsbinnginxsreload
  若有三台ngnix服务器,两台作为应用服务器,一台作为分发服务器。
  3、分发服务器lua配置:
  1、安装http包cdusrhellolualibrestywgethttps:raw。githubusercontent。compintsizedluarestyhttpmasterlibrestyhttpheaders。luawgethttps:raw。githubusercontent。compintsizedluarestyhttpmasterlibrestyhttp。lua
  2、编辑lua脚本
  其中hostl里面换成另外两台服务器的ip
  viusrhelloluahello。lualocaluriargsngx。req。geturiargs()localproductIduriargs〔productId〕localhost{192。168。1。12,192。168。1。13}localhashngx。crc32long(productId)hash(hash2)1backendhttp:。。host〔hash〕localmethoduriargs〔method〕localrequestBody。。method。。?productId。。productIdlocalhttprequire(resty。http)localhttpchttp。new()localresp,errhttpc:requesturi(backend,{methodGET,pathrequestBody,keepalivefalse})ifnotrespthenngx。say(requesterror:,err)returnendngx。say(resp。body)httpc:close()
  重启nginx
  3、请求测试
  修改productId的值查看效果
  http:192。168。1。14hello?methodhelloproductId5
  4、应用nginx服务器配置
  1、下载依赖的包cdusrhellolualibrestywgethttps:raw。githubusercontent。compintsizedluarestyhttpmasterlibrestyhttpheaders。luawgethttps:raw。githubusercontent。compintsizedluarestyhttpmasterlibrestyhttp。luawgethttps:raw。githubusercontent。combungleluarestytemplatemasterlibrestytemplate。luamkdirusrhellolualibrestyhtmlcdusrhellolualibrestyhtmlwgethttps:raw。githubusercontent。combungleluarestytemplatemasterlibrestytemplatehtml。lua
  2、修改配置cdusrhellovihello。conf
  整体内容为:server{listen80;servername;settemplatelocationtemplates;settemplaterootusrhellotemplates;locationhello{defaulttypetexthtml;contentbyluafileusrhelloluahello。lua;}}
  3、创建html模板:mkdirusrhellotemplatescdusrhellotemplatesviproduct。htmlhtmlheadmetahttpequivContentTypecontenttexthtml;charsetUTF8title商品详情页titleheadbodyproductid:{productId}
  productname:{productName}
  productpicturelist:{productPictureList}
  productspecification:{productSpecification}
  productservice:{productService}
  productcolor:{productColor}
  productsize:{productSize}
  shopid:{shopId}
  shopname:{shopName}
  shoplevel:{shopLevel}
  shopgoodcoomentrate:{shopGoodCommentRate}
  bodyhtml
  4、修改lua脚本localuriargsngx。req。geturiargs()localproductIduriargs〔productId〕localshopIduriargs〔shopId〕localcachengxngx。shared。mycachelocalproductCacheKeyproductinfo。。productIdlocalshopCacheKeyshopinfo。。shopIdlocalproductCachecachengx:get(productCacheKey)localshopCachecachengx:get(shopCacheKey)ifproductCacheorproductCachenilthenlocalhttprequire(resty。http)localhttpchttp。new()localresp,errhttpc:requesturi(http:192。168。31。179:8080,{methodGET,pathgetProductInfo?productId。。productId})productCacheresp。bodycachengx:set(productCacheKey,productCache,1060)endifshopCacheorshopCachenilthenlocalhttprequire(resty。http)localhttpchttp。new()localresp,errhttpc:requesturi(http:192。168。31。179:8080,{methodGET,pathgetShopInfo?shopId。。shopId})shopCacheresp。bodycachengx:set(shopCacheKey,shopCache,1060)endlocalcjsonrequire(cjson)localproductCacheJSONcjson。decode(productCache)localshopCacheJSONcjson。decode(shopCache)localcontext{productIdproductCacheJSON。id,productNameproductCacheJSON。name,productPriceproductCacheJSON。price,productPictureListproductCacheJSON。pictureList,productSpecificationproductCacheJSON。specification,productServiceproductCacheJSON。service,productColorproductCacheJSON。color,productSizeproductCacheJSON。size,shopIdshopCacheJSON。id,shopNameshopCacheJSON。name,shopLevelshopCacheJSON。level,shopGoodCommentRateshopCacheJSON。goodCommentRate}localtemplaterequire(resty。template)template。render(product。html,context)
  5、修改nginx配置viusrserversnginxconfnginx。conf在http里加入http{luashareddictmycache128m;}
  6、启动后台服务器
  提供getProductInfo接口,访问分发的nginx服务器测试:http:192。168。1。14hello?methodhelloproductId2shopId2

为什么奥尼尔那么强,职业生涯却只有一个常规赛MVP?奥尼尔职业生涯19个赛季,曾连续13个赛季场均贡献2010的数据,但是却只在9900赛季拿下了常规赛MVP奖杯!一般来说,每年的常规赛MVP得主基本都是联盟战绩前几好球队里表现最好放弃马尚优先续约权!曝广东队欲重组王炸组合,能如愿吗?这不可能广东和马尚还有合约,跟腱断裂开始负重,广东不敢放弃马尚,广东怕马尚死磕自己这别说不是真的,最多是一些地域黑折腾广东,即便没有了马尚,他们的球队也不见得拿CBA冠军,当然广东你觉得大本钟华莱士在nba打架能排第几名?如果就论打架的话,大本妥妥可以排进NBA历史前三的行列。能和大本在打架方面掰一掰手腕的球员,估计也就只有卡尔马龙和当时活塞坏小子军团的老大比尔兰比尔了。罗德曼打架也是很厉害的,打架作为老球迷,你见过的最好的足球阵容是什么样子的?作为球迷,我见过的最好的足球阵容是20082009赛季的无敌巴萨。20082009赛季,巴萨一鼓作气拿下了西甲国王杯欧冠西班牙超级杯欧洲超级杯和世俱杯在内的6座冠军奖杯,一举拿下了戴助听器有哪些益处?能提能提高听声效果,保护残余听力。在过去的长时间里,你听不到声音,如鸟叫声门铃声风声及水流声,这些声音在佩戴助听器后都可能再被聆听到。助听器经常能改善用户的社交心理及生理上的健康安耳背式助听器,细声管和普通的有什么不同?分别适合什么样的人佩戴?对于一些低频好高频不好的人来说,听到声音但是听不清楚,细声管的耳背机就比较适合这类患者使用,声音的能量大小不需要放大太多或者不放大。普通声管的耳背机,只要患者有残余听力,对外观没有大家都是怎样祛痘的?从内到外都要控制,禁止吃油炸食品,烧烤一类的,油腻的食物一定要控制,多吃清淡的,保持好的心情也很关键,外在就是买一款适合自己的洗面奶和护肤品不管任何痘痘,只要它出现,我们要去重视它为什么健身要穿紧身衣裤,出大汗了不难受吗?首先,对于一部分女性或者健身房教练来说,穿这样的裤子或者衣服其实主要是为了显身材,为了好看,这是毫无疑问的。但是这个问题不应该被一杆子打死,因为即使是篮球运动员也会穿。职业长跑运动如何评价江宁?我觉得江宁是个很不错的地方,现在生活在江宁很惬意,首先它土地资源广阔,它的面积是南京主城的三倍,且有六山一水三平原之称,有将军山风景区,方山风景区,牛首山,阳山碑材,汤山等众多景点农村医保9月开缴,60岁以上老人还要不要缴?农村医保9月开缴,不要问60岁以上缴不缴,就是90岁以上老人都要缴,医保从出生到死亡,没年龄大小限制,没时间早晚限制,男女老少缴费一视同仁。提起医保,本来是国家一项惠民政策,通过大古代没有银行,数万名官员遍布全国,朝廷如何把俸禄发到官员手上?咱们今天月底发工资,直接通过银行转账,然后直接到银行去取钱查账,非常的方便,那么在没有电子通讯技术的古代,朝廷官员的俸禄以唐朝为例(宋朝发明纸币,到后来明清两朝发工资基本都是发纸币
雷军发布小米2023全员信卢伟冰高升中关村在线消息2023年已经正式开始,雷军发布了全员信,简述了小米2023年的方向,表达了对卢伟冰以及其他高管的认可,并正式晋升卢伟冰为集团总裁。雷军表示,2023年对于小米而言,95。1受访者使用过线上学习课程随着互联网技术的发展,线上学习资源越来越丰富。以慕课(大型开放式网络课程编者注)为例,教育部数据显示,截至2022年11月,我国慕课数量已达6。2万门,注册用户4。02亿。线上课程物理学革命理论与实验多年来,物理学家一直在等待着一场新革命的出现。从实验的角度看,这样一场革命的到来并非是一件难以想象的事它或许来自于一台刚好被调配到正确频率上的强大设备,观测到了科学家搜寻兰中伍等ICPPb定年构造岩浆活动背景下形成的热液碳酸盐岩一直是近些年国际上研究的前沿焦点,它挑战了碳酸盐岩储层内多种白云岩化机制的传统解释。构造岩浆活动能促进热液流体沿着断裂和断层发生迁移,引起碳酸盐麻六记与湖南华通汇达牵手,冷链为品牌保驾护航2022年12月30日下午,川菜品牌麻六记创始人汪小菲率品牌团队到湖南华通汇达供应链管理有限公司进行参观交流,湖南华通汇达供应链管理有限公司董事长徐冠雄及湖南中央大厨房董事长邓媚进许家印发家书去年732个项目复工,交楼30万套记者黄昱编辑等了一年多后,恒大债权人还是没有等来恒大的境外债务重组方案。再次爽约后,恒大暂时未对外作出解释,而恒大主席许家印发布的一封致全体恒大人的一封家书在网络广泛流传。据界面新科普微生物特点及悦呼吸全净器微生物级净化微生物作为生物圈内的一大类群,除了与动植物等高等生物共有的特性之外,还有其自身的特点。了解微生物的这些特性,对于悦呼吸智能微生物全净器利用有益微生物和控制有害微生物非常重要。微生物2022年11月份建筑材料行业运行环境总体平稳中国工业报记者曹雅丽近日,中国建筑材料联合会发布2022年11月份建筑材料行业运行情况简报。数据显示,2022年11月份,面对更趋复杂严峻的国际环境和国内疫情多发广发等多重挑战,国德克萨斯大学锂电正极终极材料无钴高镍材料的降解机制httpsdoi。org10。1002adfm。202211461背景电动汽车(EVs)的快速发展对能量密集成本低廉的锂离子电池(LIBs)提出了很高的要求。这反映在用于电动汽车的16年老IP又出续作,魔域手游2未上线先火爆,只因太懂玩家这十几年来,游戏圈的变化不可谓不大。相信很多老玩家都深有体会,在最开始接触游戏的时候,整个游戏环境都是由游戏开发商主导的,玩家想玩到什么样的游戏得看市面上有什么游戏,没有太多的自主策略无国界,文明续新篇!文明与征服一周年庆,传奇邀你续写12月29日,文明与征服一周年庆典活动火热开启!全新地图对抗升级三弹福利重磅来袭!策略无国界,绝代军师助君征服天下!剧本随心选,万盟备战由你续写文明!不走格子,不卖VIP!文明与征
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网