【发布时间】:2023-03-17 14:25:02
【问题描述】:
我正在寻找一个可能会获得大量重复流量的网站。 grails 能胜任这项任务吗?
【问题讨论】:
-
什么是重?每秒多少 peek 请求?平均有多少?有多少前端服务器?哪些规格?数据库服务器也是如此。负载均衡器?粘性会议?您的问题非常非常缺乏。
标签: performance grails scalability
我正在寻找一个可能会获得大量重复流量的网站。 grails 能胜任这项任务吗?
【问题讨论】:
标签: performance grails scalability
不要在这里堆砌。你已经得到了一些很好的答案,但我只想补充一下我最近想起的事情。可扩展性不仅取决于您编写的软件(无论语言/框架如何),还取决于部署环境。部署在小型或配置不佳的服务器上的编写良好的应用程序根本无法扩展。如果您确实使用 Grails 或任何其他基于 Java 的框架,则容器(Tomcat、JBoss 等)上的默认设置可能不是您需要的。
只是要记住的一点, 戴夫
【讨论】:
Grails 在 JVM 上运行。简而言之,在任何地方,您都找不到比 JVM 更可扩展、更可靠、更健壮的运行时平台。这是 Grails 相对于 PHP 或 RoR 的一大优势。
【讨论】:
您的网络应用程序的可扩展性实际上并不取决于您选择使用什么语言/框架,而是取决于您的应用程序是如何构建的。您可以在 Grails 中构建一个可扩展的 Web 应用程序,就像您可以在 C++ 中构建一个非常慢的应用程序一样。如果 Grails 是您想使用的框架,请使用它;如果需要,您可以随时用 Java 或其他快速语言重写慢速部分。 (毕竟,这就是 Twitter 对 Scala 所做的。)
免责声明:我从未真正使用过 Grails。
【讨论】:
我同意 lael,还因为它是基于 Java 技术构建的,因此有许多经过验证的集群和“企业”工具可用,可让您轻松跨多个应用程序服务进行扩展。
围绕 Grails 的云工具也变得非常好,使得部署到像 EC2 这样的云非常容易。我最近一直在使用 Cloud Foundry,发现它非常好。
然而,正如第一张海报所指出的,您可以使用任何框架/语言编写性能不佳的应用程序。我推荐的一件事是对底层持久性库 Hibernate 有一个很好的理解。如果您了解它的工作原理,它应该可以帮助您避免在数据库级别犯任何愚蠢的错误。在这方面,像 p6spy 这样的工具非常适合检查数据库在正常使用期间的状态。它应该可以帮助您发现任何重复的查询。
【讨论】:
Grails 本质上是 Spring Framework 之上的一个薄层,许多人认为 Spring Framework 是企业界中非常可扩展的框架。 Spring + Hibernate 已成为全球许多 Java 商店的标准。
如果您在 Groovy 中遇到性能瓶颈,您可以随时用 Java 重写这些部分。
查看Success Stories 以获取使用 Grails 编写的网站示例。 Testamonials 也是查找示例的好地方。您将使用比普通 Java 应用程序更多的内存(堆和 permgen),但您可以像调整任何其他 Java 应用程序一样对其进行调整。
在低端,您不会找到使用 PHP 堆栈(例如)可以找到的每月 3 美元的托管选项。也就是说,对于 Grails 应用程序 EhCache、MemCache 等,有一些很好的缓存解决方案。除此之外,您还可以设置一个 Apache 层来缓存静态资源或您需要的任何东西。
【讨论】: