2009-08-31 13 views
12

Szukam witryny, która prawdopodobnie będzie miała ciężki, powtarzalny ruch. Czy grails są do tego zadania?Jak skalowalny jest Grails?

+1

Co to jest ciężkie? Ile żądań podglądu na sekundę? Ile średnio?Ile serwerów frontendu? Jakie specyfikacje? To samo dotyczy serwerów baz danych. Load Balancers? Lepkie sesje? Twoje pytanie jest bardzo niewystarczające. –

Odpowiedz

18

Zgadzam się z laelem, również dlatego, że jest on oparty na technologiach Java, jest wiele sprawdzonych narzędzi do tworzenia klastrów i "przedsiębiorstw", które umożliwiają łatwą skalowalność w wielu usługach aplikacji.

Narzędzia chmurowe wokół Grails również stają się bardzo dobre i sprawiają, że wdrażanie w chmurze, takie jak EC2, jest bardzo łatwe. Ostatnio korzystałem z Cloud Foundry i stwierdziłem, że jest bardzo dobry.

Jednak, jak pokazuje pierwszy plakat, można napisać źle działającą aplikację w dowolnym frameworku/języku. Jedną z rzeczy, które poleciłbym, było dobre zrozumienie Hibernacji, która jest podstawową biblioteką trwałości. Jeśli zrozumiesz, jak to działa, powinno ci to pomóc uniknąć popełnienia głupich błędów na poziomie DB. Po tej stronie narzędzie, takie jak p6spy, doskonale nadaje się do sprawdzania, co robi baza danych podczas normalnego użytkowania. Powinno to pomóc ci zauważyć wszelkie powtarzające się zapytania.

8

Skalowalność twojej aplikacji internetowej nie zależy od tego, jaki język/framework wybierzesz, ale raczej od tego, jak twoja aplikacja jest zbudowana. Możesz zbudować skalowalną aplikację internetową w Grails, tak jak możesz zbudować niesamowicie wolną aplikację w C++. Jeśli Grails jest frameworkiem, z którego chciałbyś korzystać, użyj go; zawsze możesz przepisać wolne części w Javie lub innym szybkim języku, jeśli zajdzie taka potrzeba. (W końcu to właśnie zrobiła Twitter ze Scala.)


Nota prawna: Nigdy nie używałem Grails.

+3

Twitter używany Schala. http://www.artima.com/scalazine/articles/twitter_on_scala.html. Mimo to wciąż JVM. – GmonC

+1

Cóż, odwoływałem się raczej do tego, że przepisali część tego w szybszym języku. W końcu faktyczny język nie ma znaczenia, o ile jest "wystarczająco szybki". Nie sądzę, że miałoby to dla nich duże znaczenie, gdyby to była Java. –

+0

Zgadzam się, dlatego powiedziałem, że może być w JVM, ponieważ w tym konkretnym przypadku, w końcu nie ma to znaczenia - tak jak powiedziałeś. Zmodyfikuję twój post tylko po to, by dodać to małe wyjaśnienie (nadal jest interesujące wskazać dokładnie, co zrobili, aby uniknąć przyszłych nieporozumień), ale nie mam wystarczającej reputacji. – GmonC

6

Grails jest zasadniczo cienką warstwą Spring Framework, która wielu uważa za bardzo skalowalną platformę w świecie biznesu. Spring + Hibernate stał się standardem w wielu sklepach Java na całym świecie.

Jeśli napotkasz wąskie gardła w Groovy, zawsze możesz przepisać te części w Javie.

Spójrz na Success Stories po przykłady witryn, które zostały napisane w Grails. Modele Testamonials są również dobrym miejscem do wyszukiwania przykładów. Użyjesz trochę więcej pamięci (sterty i permgen) niż waniliowa aplikacja Java, ale możesz ją dostroić tak, jak każdą inną aplikację Java.

Na niskim końcu nie znajdziesz opcji $ 3/miesiąc Hosting, które można by za pomocą stosu PHP (na przykład). To powiedziawszy, istnieją dobre rozwiązania w zakresie buforowania dla aplikacji Grails EhCache, MemCache itp. Poza tym możesz także skonfigurować warstwę Apache, aby buforować statyczne zasoby lub cokolwiek, czego potrzebujesz.

1

Grails działają na JVM. Mówiąc najprościej, nie znajdziesz bardziej skalowalnej, solidnej i niezawodnej platformy uruchomieniowej niż JVM w dowolnym miejscu. To duża przewaga Grails nad, powiedzmy, PHP lub RoR.

4

Nie znaczy, że się tu kupisz. Masz już kilka świetnych odpowiedzi, ale chcę dodać coś, o czym niedawno mi przypomniałem. Skalowalność zależy nie tylko od oprogramowania, które piszesz (bez względu na język/środowisko), ale także od środowiska wdrażania. Bardzo dobrze napisana aplikacja wdrożona na niewymiarowym lub źle skonfigurowanym serwerze nie zostanie w ogóle skalowana. Jeśli korzystasz z Grails lub jakiejkolwiek innej architektury opartej na Javie, domyślne ustawienia twojego kontenera (Tomcat, JBoss itp.) Prawdopodobnie nie będą tym, czego potrzebujesz.

prostu coś, aby pamiętać, Dave

Powiązane problemy