【发布时间】:2009-02-18 18:43:01
【问题描述】:
是什么让网站适合高流量?
如果重要的话,它是否与硬件/基础设施或如何编写软件有更多关系,以 Java 为例?
我想知道该软件会如何变化,仅仅是因为预计将有数十亿用户访问该网站,如果有的话。
到目前为止,我的理解是代码没有改变,但它被部署在多台服务器上,在一个集群中,并且负载平衡器分配负载,所以实际上,在任何一台服务器/部署上,应用程序与任何其他标准应用程序/网站一样。
【问题讨论】:
标签: performance
是什么让网站适合高流量?
如果重要的话,它是否与硬件/基础设施或如何编写软件有更多关系,以 Java 为例?
我想知道该软件会如何变化,仅仅是因为预计将有数十亿用户访问该网站,如果有的话。
到目前为止,我的理解是代码没有改变,但它被部署在多台服务器上,在一个集群中,并且负载平衡器分配负载,所以实际上,在任何一台服务器/部署上,应用程序与任何其他标准应用程序/网站一样。
【问题讨论】:
标签: performance
我强烈推荐阅读Jeff Atwood's blog on Micro-Optimization。在之前的博客中,他谈到了这个网站是如何创建的以及他所进行的硬件升级(快速总结说,更好的硬件只有在更快/更好的程度上表现更好),但一个网站的真正速度来自于好的编程,这篇文章似乎应该很好地总结了您的一些站点编程问题。
【讨论】:
硬件很便宜。编程很昂贵。
【讨论】:
有一些编程技术可以确保您的代码可以同时处理多个视图/更新。如果您使用的是现有框架,那么(希望)为您完成了大部分工作,但否则您会发现在一台服务器上每小时运行几百次的东西在您无法正常工作时'正在获得数十万次点击,您必须部署多个负载平衡机器。
【讨论】:
嗯,这主要是硬件缩放的问题,但对于涉及缩放的软件,有一些事情需要牢记。例如,如果您在服务器场中,则需要使用会话管理服务器(通过 SQL Server 或通过状态服务器 - 这意味着您的会话变量需要可序列化)。
但是,从更大的角度来看,您需要做很多事情才能扩展到企业级别。例如,将数据库调用抽象到 DAL 就变得尤为重要,因为您很可能需要在大容量环境中采用中间件包。
【讨论】: