Насколько масштабируется Grails? - PullRequest
12 голосов
/ 01 сентября 2009

Я хочу создать сайт, который, вероятно, получит много повторяющегося трафика. Является ли Grails до задачи?

Ответы [ 5 ]

18 голосов
/ 01 сентября 2009

Я согласен с lael, также потому что он основан на технологиях java, есть много проверенных инструментов кластеризации и «корпоративных», которые позволяют легко масштабировать между несколькими сервисами приложений.

Облачные инструменты вокруг Grails также становятся очень хорошими и упрощают развертывание в облаке, таком как EC2. Недавно я использовал Cloud Foundry и нашел его очень хорошим.

Однако, как указывает первый автор, вы можете написать плохо работающее приложение на любом фреймворке / языке. Одна вещь, которую я бы порекомендовал, это получить хорошее представление о Hibernate, который является базовой библиотекой персистентности. Если вы понимаете, как это работает, это должно помочь вам избежать глупых ошибок на уровне БД. С другой стороны, такой инструмент, как p6spy, отлично подходит для проверки того, что происходит с базой данных при обычном использовании. Это должно помочь вам обнаружить любые повторяющиеся запросы.

8 голосов
/ 01 сентября 2009

Масштабируемость вашего веб-приложения зависит не от того, какой язык / фреймворк вы выберете, а от того, как ваше приложение построено. Вы можете создать масштабируемое веб-приложение в Grails так же, как вы можете создать невероятно медленное приложение на C ++. Если Grails - это фреймворк, который вы хотели бы использовать, используйте его; Вы всегда можете переписать медленные части на Java или другом быстром языке, если это будет необходимо. (В конце концов, это то, что Twitter сделал со Scala.)


Отказ от ответственности: я никогда не использовал Grails.

6 голосов
/ 01 сентября 2009

Grails - это, по сути, тонкий слой поверх Spring Framework, который многие считают очень масштабируемым каркасом в корпоративном мире. Spring + Hibernate стал стандартом во многих магазинах Java по всему миру.

Если вы сталкиваетесь с узкими местами производительности в Groovy, вы всегда можете переписать эти части в Java.

Взгляните на Истории успеха с примерами сайтов, написанных на Grails. Testamonials также являются хорошим местом для поиска примеров. Вы будете использовать немного больше памяти (куча и permgen), чем обычное Java-приложение, но вы можете настроить его так же, как и любое другое Java-приложение.

В нижней части вы не найдете вариантов хостинга за 3 доллара в месяц, которые вы могли бы использовать, например, со стеком PHP. Тем не менее, есть несколько хороших решений для кэширования приложений Grails EhCache, MemCache и т. Д. Кроме того, вы также можете настроить слой Apache для кэширования статических ресурсов или чего-либо еще.

4 голосов
/ 02 сентября 2009

Не хочу нагромождать здесь. У вас уже есть отличные ответы, но я просто хочу добавить кое-что, о чем мне недавно напомнили. Масштабируемость зависит не только от программного обеспечения, которое вы пишете (независимо от языка / структуры), но также и от среды развертывания. Очень хорошо написанное приложение, развернутое на малоразмерном или плохо настроенном сервере, не будет масштабироваться вообще. Если вы используете Grails или любую другую платформу на основе Java, настройки по умолчанию для вашего контейнера (Tomcat, JBoss и т. Д.), Вероятно, не будут соответствовать вашим потребностям.

Просто что-то иметь в виду, Дэйв

1 голос
/ 02 сентября 2009

Grails работают на JVM. Проще говоря, вы нигде не найдете более масштабируемой, надежной и надежной платформы времени исполнения, чем JVM. Это большое преимущество Grails над, скажем, PHP или RoR.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...