Performance Grails的可伸缩性到底有多大?

Performance Grails的可伸缩性到底有多大?,performance,grails,scalability,Performance,Grails,Scalability,我正在寻找一个网站,可能会得到一些沉重的,重复的流量。grails能胜任这项任务吗?web应用程序的可伸缩性实际上并不取决于您选择使用哪种语言/框架,而是取决于您的应用程序是如何构建的。你可以在GRARES中构建一个可伸缩的Web应用程序,就像你可以在C++中构建一个难以置信的慢应用程序一样。如果Grails是您想要使用的框架,那么就使用它;如果需要,您可以随时用Java或其他快速语言重写慢的部分。(毕竟,这就是Twitter对Scala所做的。) 免责声明:我从来没有真正使用GRAILS。

我正在寻找一个网站,可能会得到一些沉重的,重复的流量。grails能胜任这项任务吗?

web应用程序的可伸缩性实际上并不取决于您选择使用哪种语言/框架,而是取决于您的应用程序是如何构建的。你可以在GRARES中构建一个可伸缩的Web应用程序,就像你可以在C++中构建一个难以置信的慢应用程序一样。如果Grails是您想要使用的框架,那么就使用它;如果需要,您可以随时用Java或其他快速语言重写慢的部分。(毕竟,这就是Twitter对Scala所做的。)



免责声明:我从来没有真正使用GRAILS。

GRAILS本质上是Spring框架之上的一个薄层,很多人认为它是企业界中一个非常可扩展的框架。Spring+Hibernate已经成为全球许多Java商店的标准

如果您在Groovy中遇到性能瓶颈,您总是可以用Java重写这些部分

看一看用Grails编写的站点示例。网站也是寻找例子的好地方。您将使用比普通Java应用程序多一点的内存(heap和permgen),但您可以像调整任何其他Java应用程序一样对其进行调整


在低端,你不会找到3美元/月的托管选项,你可以使用PHP堆栈(例如)。也就是说,对于Grails应用程序EhCache、MemCache等,有一些很好的缓存解决方案。除此之外,您还可以设置一个Apache层来缓存静态资源或您需要的任何东西。

我同意lael,此外,由于它是基于java技术构建的,因此有许多经验证的集群和“enterprisey”工具可供使用,它们允许您轻松地跨多个应用程序服务进行扩展

围绕Grails的云工具也变得非常好,使得部署到像EC2这样的云变得非常容易。我最近一直在使用CloudFoundry,发现它非常好


然而,正如第一张海报所指出的,您可以用任何框架/语言编写性能差的应用程序。我推荐的一件事是充分了解Hibernate,它是底层的持久性库。如果您了解它是如何工作的,它应该可以帮助您避免在DB级别犯任何愚蠢的错误。在这方面,p6spy之类的工具非常适合在正常使用期间检查数据库的运行情况。它应该可以帮助您发现任何重复的查询。

Grails在JVM上运行。简单地说,您在任何地方都找不到比JVM更具可伸缩性、更坚实、更健壮的运行时平台。这就是Grails相对于PHP或RoR的巨大优势。

并不意味着在这里重复。你们已经得到了一些很好的答案,但我只想补充一下我最近想起的东西。可伸缩性不仅取决于您编写的软件(不考虑语言/框架),还取决于部署环境。部署在规模较小或配置较差的服务器上的编写良好的应用程序根本无法扩展。如果您确实使用Grails或任何其他基于Java的框架,那么容器(Tomcat、JBoss等)上的默认设置可能不是您所需要的

只是要记住一点,
Dave

Twitter使用了Schala。不过仍然是JVM。好吧,我指的更多的是他们用更快的语言重写了其中的一部分。最后,实际的语言并不重要,只要它“足够快”。我不认为如果它是Java,对他们来说会有多大的不同。我同意,这就是为什么我说它可以在JVM中,因为在这个特殊的情况下,最终它并不重要——就像你说的那样。我会编辑你的帖子只是为了补充这个小的澄清(指出他们到底做了什么以避免将来的误解仍然很有趣),但我没有足够的声誉。什么是沉重的?每秒有多少peek请求?平均有多少?有多少个前端服务器?哪些规格?数据库服务器也是如此。负载平衡器?棘手的会议?你的问题太少了。