素材牛VIP会员
网站架构:PHP针对并发访问如何优化?
 何***孽  分类:PHP代码  人气:3005  回帖:22  发布于6年前 收藏

考官出题:

优化一个并发量较高的社区型平台,您会采取哪些方案?(只有三台服务器,并发量大->接近无穷大)

我的回答:

1)采取LNMP架构,并且先确保硬件是否足够支撑如此大的访问量
2)对于不需实时更新的数据如新闻资讯可生成文件缓存,以缓解并发压力
3)针对不同的运营线路解析到不同的服务器,做分流
4)使用CDN加速缓存缓解并发压力

面试结果:

不满意,被pass

求答案。

2015-8-21
另外一个疑惑的是,多少才算高并发?如何来计算是属于高并发?

讨论这个帖子(22)垃圾回帖将一律封号处理……

Lv4 码徒
sh***ng 学生 6年前#1

并发量大->接近无穷大 的时候,最简单,最有效的解决问题的方法就是: 增加服务器,强哥当年说的都是真理啊

Lv2 入门
踏***C UI设计师 6年前#2

这种问题,回答大致的思路就好了。另外,考官的问题描述也不够准确。

Lv4 码徒
铁***1 JS工程师 6年前#3

三台服务器肯定是满足不了无限的并发,只能是尽量的优化。优化的顺序是:业务、程序、部署。

从业务上要处理好应用超出负荷时的处理,比如:目前在线人过多请稍候访问之类的提示;减少图片、附件等上传的大小限制,甚至临时取消附件功能,减少带宽和存储空间的压力;分页只支持固定的分页。

程序上包括应用的优化和数据库的优化。有可能的话尽量使用第三方的服务减少服务器自身的压力。首页等访问量大的页面静态化,减少数据库的压力,批量的实务代替时时的处理。数据库要对业务表的锁进行细化处理,读写分离。

部署上要数据库一台,另外两台负载均衡。使用cdn尽量把流量分离出去。增加防ddos攻击,跳高防护的等级,减少网络攻击对普通用户的影响。

其实三台服务器能做很多事情 :)

Lv3 码奴
爱***丘 站长 6年前#4

你是面试高级工程师还是架构师?

他招你进去一般不会想你改他的架构的,我觉得问这个问题只是想了解你是否对网站架构有所了解。

如果你没有参与过高并发的项目,只是根据网上的资料,然后回答,我觉得被pass掉很正常。

这样回答可能效果更好点:

我以前在XXX公司做过XXX项目,也遇到了高并发的问题,我们采取的解决方案有....

其实高并发的问题要码农和运维人员一起解决,关键在于实战。。。

Lv6 码匠
d***悠 Web前端工程师 6年前#5

应对并发的体会,暂时想到下面2点:

并发中的性能问题
1,有钱就堆设备
2,充分利用缓存(配合php的黑魔法fastcgi_finish_request非常好用)

并发中数据一致性问题
1,使用队列
2,必要的自动复查
3,数据库锁的合理利用

Lv5 码农
sh***ao 职业无 6年前#6

你的回答的确很普通,你应该说三台机器根本就扛不住高并发,3台服务器会直接宕机的,无论怎么优化都无法做到抗住高并发,这个面试官是个SB.

Lv6 码匠
黑***心 移动开发工程师 6年前#7

其实考官只是看你怎么在有限的资源内处理问题的能力。
现在很多程序员根本只知道程序内的事,不考虑资源的合理利用。

Lv5 码农
mo***99 产品经理 6年前#8

这个问题可是很宽泛的,分为好几个方面.

最基本的各种配置文件的优化是有必要的.

程序方面:数据文件缓存,内存缓存,静态缓存,opcode缓存等等

数据库方面:设计合适的表结构,表缓存优化,主从动静分离,集群,冷热数据分离等....

系统架构方面:redis,高可用啦等等.....我就不说了,太多了

在补充个一点,能提到高并发的都是爱装逼,这个问题本身就是世界难题,尤其这个面试官还说是接近无穷大!

Lv3 码奴
阿***盗 页面重构设计 6年前#9

才三台服务器,还谈什么并发,单台机器的并发是有瓶颈的,社区型平台并发瓶颈不应该是写入,而是读取,可以用一台物理服务器做为缓存服务器,还需要在高并发时,缓存的网卡会不会被打满,社区型发贴也可以有延时,写入时可以使用消息队列写入,同时处理与队列处理,用户可能是无感知的,消费一个队列的时间很快,在写入数据库中,可以同时刷新缓存,也可以使用nosql数据库来做,就是控制好内存使用,cache与storage合理使用。
如果硬要说构架:
分层,分割,分布式,集群,缓存,异步等,就三台机器,说构架,我也是醉了

Lv6 码匠
xi***uX 站长 6年前#10

三台服务器,无限并发,你问问他,吃三个馒头,从此不用再吃饭了,行不行?

上一页123下一页
 文明上网,理性发言!   😉 阿里云幸运券,戳我领取