我希望建立一个网站,可能会获得一些重复的重复流量。 Grails能胜任这个任务吗?
答案 0 :(得分:18)
我同意lael,也因为它基于java技术,有许多经过验证的集群和“企业”工具,可以让您轻松扩展多个应用程序服务。
围绕Grails的云工具也变得非常好,并且非常容易部署到像EC2这样的云。我最近一直在使用Cloud Foundry,发现它非常好。
正如第一张海报所指出的,你可以用任何框架/语言编写性能不佳的应用程序。我建议的一件事是深入了解Hibernate,它是底层的持久性库。如果你了解它是如何工作的,它应该可以帮助你避免在数据库级别犯下任何愚蠢的错误。在这方面,像p6spy这样的工具非常适合在正常使用期间检查数据库的功能。它应该可以帮助您发现任何重复的查询。
答案 1 :(得分:8)
Web应用程序的可伸缩性实际上并不取决于您选择使用的语言/框架,而是取决于您的应用程序的构建方式。您可以在Grails中构建可伸缩的Web应用程序,就像在C ++中构建速度极慢的应用程序一样。如果Grails是您想要使用的框架,那么使用它;如果需要,你总是可以用Java或其他快速语言重写慢速部分。 (毕竟,这就是Twitter对Scala所做的。)
免责声明:我从未真正使用过Grails。
答案 2 :(得分:6)
Grails本质上是Spring框架之上的一个薄层,许多人认为它是企业界的一个非常可扩展的框架。 Spring + Hibernate已经成为全球许多Java商店的标准。
如果您遇到Groovy中的性能瓶颈,您总是可以用Java重写这些部分。
查看Success Stories有关用Grails编写的网站示例。 Testamonials也是寻找示例的好地方。您将使用比vanilla Java应用程序更多的内存(heap和permgen),但您可以像调整任何其他Java应用程序一样调整它。
在低端你不会找到3美元/月的托管选项,你可以使用PHP堆栈(例如)。也就是说,Grails应用程序EhCache,MemCache等有一些很好的缓存解决方案。除此之外,您还可以设置Apache层来缓存静态资源或任何您需要的内容。
答案 3 :(得分:4)
不要故意在这里堆积。你已经有了一些很棒的答案,但我只想补充一下我最近提醒过的事情。可伸缩性不仅取决于您编写的软件(无论语言/框架如何),还取决于部署环境。部署在尺寸过小或配置不当的服务器上的编写得很好的应用程序根本无法扩展。如果您确实使用Grails或任何其他基于Java的框架,容器(Tomcat,JBoss等)上的默认设置可能不是您所需要的。
要记住一些事情, 戴夫
答案 4 :(得分:1)
Grails在JVM上运行。简而言之,您无法在任何地方找到比JVM更具可扩展性,可靠性和可靠性的运行时平台。这就是Grails比PHP或RoR更大的优势。