如何构建高性能 Web 网站

2015-12-18 09:27:37 +08:00
 moji2016

比如让 Web 网站的,页面响应速度更快,支持的在线人数更多。是用 CDN,mysql 主从分离, redis,还有性能高的 web 框架,比如 java 的 spring,go 的 revel , nodejs 的 express , python 的 flask 居中, rails 次之, php 的 laravel 性能最低。在众多的因素中, web 框架自身的性能占高性能的 web 站点中的多少比例。

例如本站 v2ex,从支持 100 人在线,到 1000 人在线,到 10000 人在线,到 100000 人, 1000000 人在线等,是换站点 WEB 框架为高性能的语言的 WEb 框架就能解决。还是必须要增加硬件和 CDN , redis 缓存, mysql 主从分离这些才能解决。哪种方案性价比高。框架本身性能可以忽略不计吗?哪怕你用最慢的 laravel 框架。

总而言之一句话,应付大流量,并且页面快速响应,不断掉,上面哪些因素占主要的。哪些是可以忽略的次要因素。

5926 次点击
所在节点    Python
32 条回复
c742435
2015-12-18 11:52:13 +08:00
一个这样问问题的人 /团队,很大可能没有构建那样高性能系统的技术实力。
告诉你个最简单的办法,上云,数据库鼠标点点就能扩展,业务服务器鼠标点点就能随便加。等到云满足不了你们的需求了,你们也有钱招能搞定的人了。
moji2016
2015-12-18 12:05:59 +08:00
@c742435 框架性能测试中,那些排名高的框架,和那些排名低下的框架,之间不做选择吗。
ryd994
2015-12-18 13:00:48 +08:00
一开始能考虑一下可扩展性自然是好的,考虑一下就够了。
Web 前端一般是可以直接用 loadbalancer 直接横向扩展的。最后的瓶颈一般落在数据库等后端上。所以前端框架就算选错了,多用点资源也没什么大不了的。
ryd994
2015-12-18 13:04:40 +08:00
@moji2016 会什么用什么,什么顺手用什么。还有比 flask 更快的 bottle 呢,还有更快的不用框架裸写 wsgi 呢。互联网企业一般开发重点不在性能上,因为入我上面所说,横向扩展不难。重点一般是迭代周期和可用性。只要能快速出新功能,而且顶住不出大篓子,就是好框架。
shajiquan
2015-12-18 13:19:03 +08:00
Google 有很多项目,在很多项目发起时,都做了大量的提前优化,因为感觉会人多到爆。但事实并非如此。

前几天看新闻有讲。
loading
2015-12-18 13:28:20 +08:00
从一开始就用 go …
c742435
2015-12-18 15:14:52 +08:00
@shajiquan Google 有钱有技术,而且真的有可能人多到爆。
Google 绝对不会问楼主的问题。

@loading 一开始就有 go 开发能力的团队还是少。
loading
2015-12-18 15:16:20 +08:00
@c742435 直接找 python 和 go ,差不太多。
cnbiglee
2015-12-18 15:21:04 +08:00
如果预计不到以后的情况,那就到一个阶段做一个改进。可以到时看瓶颈在哪,再决定做哪方面的改进。
liujiangbei
2015-12-18 18:13:30 +08:00
空谈误国,实干兴邦,楼主提到的这些技术栈都能构建高性能 web 站点。楼主应该从实际情况出发,找到瓶颈是什么?
neoblackcap
2015-12-18 18:51:25 +08:00
我见过很多刚开始就考虑高性能的公司,现在他们都死了。

便宜,高性能,好找人,只能取两者
Daddy
2015-12-19 00:34:47 +08:00
没什么,归结起来就是:心太大,总想着一步到位。 还没网站,更没运营,就想着最高起点,用最好的语言,用最好的服务器,用最好的宽带。

还没女朋友,就想着各种旅行、各种姿势、各种体位……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/244371

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX