高并发访问服务器时前台页面优化方法

  • 时间:2018-10-14 23:02 作者:南京菜菜工作室 来源:南京菜菜工作室 阅读:169
  • 扫一扫,手机访问
摘要:前段时间公司上线了一个微信抢红包的项目,搞了6天活动,公众号粉丝从二十多万一下子涨到四十万左右,看来糖衣炮弹的吸引力才是最大的。但是对于我们技术开发而言,这么多的客户,而且还存在大量并发的访问,服务器的压力可想而知,为了配合减少服务器压力,作为前台开发的我,在和同事探讨后,做了如下几条前台优化措施,

前段时间公司上线了一个微信抢红包的项目,搞了6天活动,公众号粉丝从二十多万一下子涨到四十万左右,看来糖衣炮弹的吸引力才是最大的。但是对于我们技术开发而言,这么多的客户,而且还存在大量并发的访问,服务器的压力可想而知,为了配合减少服务器压力,作为前台开发的我,在和同事探讨后,做了如下几条前台优化措施,配合服务端有效减轻了服务端的压力。

1.减少访问API或者者不访问

这个项目主要开发了3个页面,活动规则页面、 抢红包页面、中奖名单页面。最开始的方案是活动规则页面的活动规则是通过请求api从服务端获取,这是通常的做法,好处是开发完成后不再需要技术人员修改代码,经营人员直接在后端修改富文本编辑器即可以升级页面,很灵活,适合长期存在、活动有变更的项目。但是对于抢红包这个项目,6天活动时间结束后就可下线,为了保证稳妥性,防止大量客户并发访问导致服务器瘫痪,后来把从服务端获取活动规则的借款去掉了,直接在页面中写死数据。

在中奖名单页面的开发中,也是一样的道理,但是这个就略微复杂少量了,因为抢红包页面采用的是静默受权的方式,服务端数据库中只存了客户的openid,而中奖名单页面需要显示客户微信头像、微信昵称,这样才具备公信力,否则只摆出一个openid,客户会怀疑活动的真实性。

高并发访问服务器时前台页面优化方法

方案已经是确定的,中奖名单的数据还是采用写死的数据,不访问API,那么对于我而言,开发方式就有点变化了,我需要从服务端获取到3月31日的中奖名单前100名,而后遍历这一百天数据的openid,使用access_token 和openid获取客户的头像和昵称后,以数组的形式存入到一个数组中。页面加载的时候其实是每次取这个数组中的10条数据。具体实现方法我写了了demo,有时间再补充。

2.h5静态文件资源与API请求部署到不同的服务器

做最坏的打算,为了防止服务器瘫痪后,客户打开页面显示404或者者503,我把前台静态文件中的js、css、图片等资源都放到七牛服务器上,为了防止跨域,html文件还是和API放在同一台服务器上。这样,即便我们自己的服务器瘫痪了,客户仍然可以正常打开页面。

3.对于高访问量接口使用分时请求

高并发访问服务器时前台页面优化方法

抢红包的页面如上图所示。

在整个项目中,抢红包的API是访问量最大的接口之一,为了减轻服务器压力,我做了一个分时解决,在客户点击“继续抢”按钮时,取1到15秒的随机数,而后发起api请求,这样就把所有的请求平均分到15秒时间内,肯定程度上可以减小并发访问量。

4.在高并发请求API接口前增加访问限制接口,只允许一部分客户通过

这个主要是服务端的逻辑,作为前台就是配合增加接口,假如超过超时时间就重新初始化。

5.当天抢到红包的客户不再发起抢红包API请求,屏蔽时间1小时

因为活动时间为6天,当天的活动,假如客户已经抢到红包,就不再请求api,假如还没有抢到红包,可以继续请求。具体是这样实现的:假如客户已经抢到红包,将中奖标志存入cookie,有效期1小时。这样中奖当天就不会再请求api,但是第二天的活动照样可以请求api,实现了减小api请求的目的。

  • 全部评论(0)
最新发布的资讯信息
【网页前端|HTML】最全面的前端开发指南(2019-07-15 12:57)
【系统环境|数据库】零基础如何快速学好大数据?(2019-06-29 12:27)
【系统环境|Linux】零基础如何学好大数据?必备需要学习知识(2019-06-18 11:54)
【系统环境|】Hadoop环境中管理大数据存储八大技巧(2019-06-15 11:01)
【系统环境|服务器应用】现在国内IT行业是不是程序员过多了?(2019-06-11 06:34)
【系统环境|服务器应用】新贵 Flutter(2) 自己设置 Widget(2019-06-11 06:34)
【系统环境|服务器应用】Android完整知识体系路线(菜鸟-资深-大牛必进之路)(2019-06-11 06:34)
【系统环境|服务器应用】Java程序员小伙经历三个月备战,终获阿里offer(2019-06-11 06:34)
【系统环境|服务器应用】每日一问:谈谈对 MeasureSpec 的了解(2019-06-11 06:34)
【系统环境|服务器应用】【科普】晶体管-1(2019-06-11 06:34)
手机二维码手机访问领取大礼包
返回顶部