Web applications web上的可伸缩性

Web applications web上的可伸缩性,web-applications,scalability,Web Applications,Scalability,我一直在和大学里的一些朋友争论,但我们无法确定哪一个框架对web应用程序具有更大的可伸缩性(而且仍然非常快) 一个调用jsp,另一个调用ruby,另一个调用php,等等。我能请您澄清一下什么是更具可扩展性的潜力吗 Tks,希望我没有重复我搜索过的任何东西,但之前没有发现任何类似的问题 编辑:如果你能对此进行比较,那就好了:)算法在可伸缩性方面比使用的语言更重要 也就是说,不同语言的执行速度会有所不同。我相信Java(servlet和JSP编译成servlet,即本机代码)将比Ruby和PHP快一

我一直在和大学里的一些朋友争论,但我们无法确定哪一个框架对web应用程序具有更大的可伸缩性(而且仍然非常快)

一个调用jsp,另一个调用ruby,另一个调用php,等等。我能请您澄清一下什么是更具可扩展性的潜力吗

Tks,希望我没有重复我搜索过的任何东西,但之前没有发现任何类似的问题


编辑:如果你能对此进行比较,那就好了:)

算法在可伸缩性方面比使用的语言更重要

也就是说,不同语言的执行速度会有所不同。我相信Java(servlet和JSP编译成servlet,即本机代码)将比Ruby和PHP快一些)。还有大量的Java web框架将鼓励您以最佳方式实现可伸缩性


还要设计你的应用程序,让它可以在负载平衡器后面愉快地运行,可伸缩性变得容易多了:)但这不是我的专业领域。

编译语言通常比解释语言运行得快,所以我认为Ruby和PHP是从八个球开始的,但它实际上取决于如何使用该语言以及如何构造代码


所有语言都有自己的最佳实践和模式来构建可扩展的应用程序,并且通常会根据建议的应用程序的功能进行折衷。

您还可以查看“”

我认为Java/JavaEE是唯一一个从零开始设计用于开发分布式/集群应用程序的“框架”,它鼓励从规范(EJB、JTA…)中实现它的良好实践


但和往常一样,这要视情况而定。这类问题往往会引发战争:)Ruby和PHP不是webapp框架。它们是web开发中流行的编程语言

一般来说,webapp可伸缩性不是编程语言的属性,给定的webapp框架最多也不会妨碍可伸缩性。良好的可扩展性更是应用程序设计的一个特性

有太多的webapp框架,不足以进行百科全书式的逐点比较

此外,您可以通过多种方式解决给定应用程序的可伸缩性问题。一种方法是定义明确、范围狭窄,并以出色的原始性能为目标,这样一台机器就可以服务于数以百万计的工作单元。最好的例子是

另一种方法是通过“仅仅”添加更多的硬件来更容易地服务于不断增加的负载。几乎所有数据库支持的webapp框架都可以这样扩展:只需在负载平衡器和共享数据库后端之间添加更多的应用程序服务器。如果以这种方式构建问题,您主要关心的是将应用程序设计为最小化1。数据库争用2。数据库加载

最后一种方法是将系统设计为一路疯狂并行。谷歌就是最好的例子

总之:语言或框架不能生成可伸缩的应用程序,软件架构师可以


编辑:说得很清楚,我的答案是关注可伸缩性,即在不改变设计的情况下处理不断增加的负载的能力。这与执行速度不同。

我不确定您提到的任何框架都会严重阻碍可伸缩性

这完全取决于实施情况

我会首先集中精力让你的web应用运行良好,然后在它成为问题时担心可伸缩性。换句话说,“当我们到达它时,让我们跨越这座桥。”

A:C ISAPI dll(或自定义apache模块):)

即使如此,web服务器的开销、解析http请求和服务html页面也会使应用程序的执行时间变得几乎无关紧要。如果您将应用程序作为CGI应用程序运行,则期望性能更低

对于web中的可伸缩性,您实际上是在谈论添加更多服务器和负载平衡,通过将数据库(如果大量使用)放在单独的服务器上来减轻服务器的负载


这些语言的原始性能几乎无需担心。使用你想使用的,你将最有效率的。担心您将遇到的其他问题—网络io、安全性和正确性。

已经有几个好的方面了。我的主要观点是:一个对python了如指掌的人可能能够使用python比使用Java生成更具可伸缩性的代码。还有很多大型网站使用了你提到的所有技术,所以我认为这两种方式都没有什么大的优势


在大多数情况下,你应该坚持你熟悉的东西,除非有真正重要的理由改变方向。

Web框架的可伸缩性是一个有点深思熟虑的问题(有些人会说p155ing竞赛)。除非你能赚大钱(祝你好运),并能保证每天有数百万的访问者,否则所有这些框架都能很好地处理(ASP.NET也能)


就我个人而言,我总是选择ASP.NET。它与任何东西一样具有可扩展性,并且拥有最好的开发工具。唯一的缺点是主机和操作系统成本。

如果你想知道主要网站如何使用LAMP实现可伸缩性,你应该看看。

选择web框架对可伸缩性(可伸缩性)的影响比网站的体系结构小。大多数现代web框架都非常适合扩展,因此真正需要注意的是您的部署设置。

(五年后…)

我发现了这篇博客文章,它对多种语言相关的web框架进行了基准测试。这基本上回答了我2008年的问题


我碰巧遇到了这个问题,注意到有些人谈论速度,有些人谈论可伸缩性。我写了一篇博客文章解释了这一区别:

“高分