2009-08-31 38 views
12

我正在尋找一個網站,可能會得到一些沉重,重複的流量。 Grails完成任務了嗎?Grails的可擴展性如何?

+1

什麼是重?每秒有多少個窺視請求?平均多少?多少個前端服務器?哪些規格?數據庫服務器相同。負載平衡器?粘性會話?你的問題非常缺乏。 – 2009-09-01 20:04:56

回答

18

我同意lael,也因爲它建立在java技術上,所以有很多經過驗證的集羣和'enterprisey'工具可供您輕鬆擴展到多個應用程序服務。

圍繞Grails的雲工具也變得非常優秀,並且使得像EC2一樣部署到雲非常容易。我最近一直在使用Cloud Foundry,並發現它非常好。

然而,正如第一張海報指出的那樣,您可以在任何框架/語言中編寫性能不佳的應用程序。我推薦的一件事就是對Hibernate這個潛在的持久性庫有一個很好的理解。如果你明白這是如何工作的,它應該可以幫助你避免在數據庫層面犯下任何愚蠢的錯誤。在這方面,像p6spy這樣的工具非常適合在正常使用時檢查數據庫的性能。它應該可以幫助您發現任何重複的查詢。

8

您的Web應用程序的可伸縮性不會取決於您選擇使用哪種語言/框架,而是您的應用程序的構建方式。您可以在Grails中構建一個可伸縮的Web應用程序,就像您可以在C++中構建一個速度非常慢的應用程序一樣。如果Grails是您想要使用的框架,那就使用它;如果需要的話,您總是可以用Java或其他快速語言重寫慢速部分。 (畢竟,Twitter是用Scala做的。)


聲明:我從來沒有真正使用過Grails。

+3

Twitter使用了Schala。 http://www.artima.com/scalazine/articles/twitter_on_scala.html。不過仍然是JVM。 – GmonC 2009-08-31 22:13:17

+1

嗯,我更多地提到他們用更快的語言重寫了部分內容。最後,只要「足夠快」,實際的語言並不重要。如果它是Java,我認爲它們對它們不會有太大的區別。 – 2009-08-31 22:31:17

+0

我同意,這就是爲什麼我說它可以在JVM中,因爲在這種特殊情況下,最終它並不重要 - 就像你說的那樣。我會編輯你的文章,只是爲了添加這個小小的澄清(仍然有趣,指出他們做了什麼以避免未來的誤解),但我沒有足夠的聲譽。 – GmonC 2009-09-01 00:52:40

6

Grails本質上是Spring框架之上的一個薄層,它被許多人認爲是企業界非常可擴展的框架。 Spring + Hibernate已經成爲全球許多Java商店的標準。

如果遇到Groovy中的性能瓶頸,可以隨時用Java重寫那些部分。

查看Success Stories以瞭解使用Grails編寫的網站示例。 Testamonials也是查找示例的好地方。您將使用比vanilla Java應用程序多一點的內存(堆和permgen),但您可以像調整其他任何Java應用程序一樣調整它。

在低端,你不會找到你可以使用PHP堆棧(例如)3美元/月的主機選項。也就是說,Grails應用程序EhCache,MemCache等有一些很好的緩存解決方案。除此之外,您還可以設置一個Apache層來緩存靜態資源或任何您需要的內容。

1

Grails在JVM上運行。簡而言之,您無法在任何地方找到比JVM更具可擴展性,可靠且強大的運行時平臺。這就是Grails與PHP或RoR相比的巨大優勢。

4

不要吝嗇在這裏堆積。你已經有了一些很好的答案,但我只想補充一點,最近我想起了這件事。可伸縮性不僅取決於您編寫的軟件(不管語言/框架),還取決於部署環境。部署在尺寸不足或配置不佳的服務器上的編寫得很好的應用程序根本無法擴展。如果您使用Grails或任何其他基於Java的框架,則容器(Tomcat,JBoss等)上的默認設置可能不會成爲您需要的。

只是要記住, 戴夫