美文网首页PHP实战PHP实战
记一次商业项目的优化过程

记一次商业项目的优化过程

作者: 思梦PHP | 来源:发表于2019-04-30 10:20 被阅读1次

时间追溯到2月份,一个历时20天的小项目上线了。

20天。能干点啥,你我都能懂吧,但是还是赶出来了

项目背景是一个类似企业分享直播的平台(结合第三方),根据客户需求,这次分享最多300人参加(线上=移动+PC),然后架构设计拟定为单体架构,不用过多优化,正常开发就可以。但是就在直播开始的前几分钟,后台出现了,数据库连接数过多,系统一会直接崩了。

之后迅速查看阿里云后台监控发现tcp连接居然有5000,小声(wocao)

说好的不到300人呢,你是不是在逗我。

之后迅速升级网站配置,重启服务器,之后还是崩溃?

因为阿里云的服务器(其他的服务器不知)有自我保护意识,到达一定的并发,将自启保护措施(类似),然后这就相当于我们升级分配置服务器将无法使用,之后调整服务器的配置就行优化

然后重启,趋于稳定,但是这已经是开播的10分钟之后,聊天室此时各种抱怨,怎么刚才进不来。。。。

最终直播结束,这也宣布这次直播服务失败(编写事故汇报),和客户撕逼

最终确认下次直播,人数将达到5000人,接下来就是各种优化

首先我们加了一个cdn,,然后压缩js+css,压缩图片

之后将首页做了页面静态化,之后升级服务器的带宽,压力测试5000并发,ok了

在之后就是优化直播页面,难点在于:实时更新在线人数(人气),动态加载用户信息,动态渲染页面

解决

(1)实时更新在线人数:使用websocket做长连接,减少每次握手带来的消耗,将数据存储在redis里面,每次请求直接从redis里面获取,之后根据关闭浏览器来减少redis人气数(非强一致性)

(2)动态加载用户信息

1)将登陆方式改成点击操作才登陆,这样就能减少一部分并发的可能性

2)将会用的信息存储在redis里面做队列存储

由于时间关系,我们选择了第一种方案,然后模拟测试,还算ok

(3)动态渲染页面:将一些实时的参数通过实时的ajax加载,然后其他非实时参数做静态缓存

第二次直播,顺利完成!!!

总结:

(1)服务器配置要跟得上

(2)判断是cpu计算密集型还是非密集型

(3)查看是否吃带宽,然后升级带宽

(4)尽量将流量限制在上游,让操作数据的业务尽量来的晚一些

(5)判断业务是否适合做页面静态化,这样大大提高并发

(6)如果在apache和nginx里面选择的话,nginx处理静态资源真的很强大,还是用nginx吧-非绝对,自己判断

最后加环境:PHP+Mysql+Nginx+Linux

祝大家5.1快乐

相关文章

  • 记一次商业项目的优化过程

    时间追溯到2月份,一个历时20天的小项目上线了。 20天。能干点啥,你我都能懂吧,但是还是赶出来了 项目背景是一个...

  • webpack打包优化

    记一次react项目优化的过程优化前,用uglifyjs-webpack-plugin插件压缩js后得到的大小,实...

  • iOS安装包优化

    随着项目的迭代,功能越加越多,包的大小也越来越大,我们无法避免的就是要对安装包进行优化。 刚做完优化,把整个过程记...

  • 记一次LNMP优化过程

    首先要给大家说明以下几点: 1.篇幅和时间有限,本篇着重讲实战,理论部分交给超链接 2.本人水平有限,希望大家不吝...

  • 摘录1

    爱不是目的, 而是优化生命的过程。

  • 营销增长案例:重塑消费者决策的关键成功因素

    重塑消费者决策流程是一个不断探索和优化的过程。这个过程不仅是一个商业项目的体现,同时还是企业发展自身能力以更好适应...

  • 记一次golang gc优化过程

    我们使用golang编写的线上服务,通常会设置一个golang runtime指标监控,包括goroutine n...

  • 记一次 ListView 性能优化过程

    奇葩需求催生创新,记一次对 ListView 的性能优化。(当然,RecyclerView 也是一样) 引子 首先...

  • 记一次ES性能优化过程

    集群节点分布不均 from to查询深度过大(默认10000) scroll查询过多 must查询性能相对较低

  • 运营配称与品商业模式的匹配02

    刘辉 品牌商业模式设计与优化 品牌商业模式:品牌与利益相关者的交易结构。 品牌商业模式的目的是为了降低转化顾客实现...

网友评论

    本文标题:记一次商业项目的优化过程

    本文链接:https://www.haomeiwen.com/subject/pidmnqtx.html