LINUX.ORG.RU

Подскажите быстрый контейнер сервлетов или сервер приложений (?)


0

1

В общем:
мне нужно где-то задеплоить war, нагрузка будет чудовищная (1М посетителей в сутки). Подскажите где его деплоить: на сервере приложений или на контейнере сервлетов? И вообще: какая между ними разница? Как я понял - сервер приложений это что-то сложное и обвешанное рюшками, тогда как контейнер сервлетов - наоборот прост и вроде как быстр. Что именно выбрать? Может просто ставить Jetty и не париться?


Присмотрись к Tomcat. Он умеет кластеризоваться и распределять нагрузку. Про Jetty на счёт масштабируемости не знаю, но вроде бы embedded-решения на его базе неплохи (используется в Eclipse) и очень быстро стартует приложения, в отличие от Tomcat.

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

томкат навешивается на апач, а я не люблю апач. есть ещё глассфиш, который тоже умеет кластеризоваться и распределять нагрузку. вопрос конечно в том, что лучше.

ArtemZ
() автор топика

Сервер приложений включает в себя: - контейнер сервлетов; - EJB нонтейнер; - JMS, JNDI, всевозможные пулы и т. д.

Т. е., контейнер сервлетов - часть сервера приложений, которая отвечает за сервлеты и всё, что с ними связано.

Контейнеры сервлетов: tomcat (он к веб-серверу апачу никакого отношения не имеет, он сам по себе), jetty, grizzly (а-ля tomcat на стероидах, сидит внутри glassfish).

Если сервер приложения интересуют, тогда это jboss(контейнер сервлетов - tomcat), glassfish(grizzly), geronimo(tomcat)

Ну и есть ещё IBM WebSphere, Oracle WebLogic, Sun/Oracle Application Server (glassfish плюс платные рюшки).

P.S.: распределять нагрузку контейнеры сервлетов не умеют.

anonymous
()

если war, то на контейнере — tomcat
сервер приложений - это если нужно ejb

OramahMaalhur
()
Ответ на: комментарий от ArtemZ

Tomcat не нуждается в Apache Server. //Ваш к.О.

iZEN ★★★★★
()
Ответ на: комментарий от anonymous

geronimo(tomcat)

Geronimo есть модификация с Jetty.

iZEN ★★★★★
()
Ответ на: комментарий от ArtemZ

вы не во всем правы)

томкат навешивается на апач, а я не люблю апач.

nginx отлично работает фронтэндом) я тоже не люблю апач

есть ещё глассфиш, который тоже умеет кластеризоваться и распределять нагрузку.

а еще глассфишу не нужен фронтэнд за счет сверхбыстрого Grizzly
Но 3,1 версия с кластеризацией к сожалению, дико глючная, а 3.0.1 не кластеризуется еще.

Если вам нужно сегоня и быстро, я бы посоветовал томкат и внешнюю кластеризацию + какой-то механизм синхронизации сессий.

Если же вам на будущее, то подождите gf 3.2, может быть там все пофиксят.

JFreeM ★★★☆
()
Ответ на: комментарий от JFreeM

Нет, с той скоростью, с какой получается на груви писать приложения - я быстрей сам что угодно напишу, чем ждать новую версию :)

Всё понятно, всем спасибо. Буду пробовать томкат.

ArtemZ
() автор топика

Контейнер сервлетов - один из компонентов сервера приложений. Так же в сервере приложений есть EJB и остальное. Spring заменяет львинную долю этих функций, при этом работая на контейнере сервлетов или даже просто в standalone приложении (если собственно говоря сервлеты и то что на них построено не нужно).

У меня все обычно на Spring, потому работает на Tomcat и Jetty на ура. Последнее время склоняюсь к последнему, так как умеет очень просто конфигурироваться для запуска из Maven в качестве встроенного решения. И Jetty построен на NIO, Tomcat - обычная многопоточная модель. Исходя из этого Jetty должен лучше масштабироваться. Но это когда один сервер. О кластеризации не знаю, не пробовал пока. Но в целом впечатление лучше от Jetty, быстрее запускается, проще настраивается, может встраиваться, более понятные конфиги, ну и естественно Java NIO.

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

И Jetty построен на NIO, Tomcat - обычная многопоточная модель. Исходя из этого Jetty должен лучше масштабироваться. Но это когда один сервер.

В Jetty есть разные коннекторы, ниошный в том числе. И мои тупые бенчмарки показывают, что обычный, не нио коннектор работает чуть быстрее ниошного.

По теме: бери Jetty, не прогадаешь. Он маленький, быстрый, с удобным конфигом и широкими возможностями по встраиванию.

Кластеризация сессий - попробуй http://code.google.com/p/jetty-session-memcached/

Хотя лучше всего, когда сессии вообще не используются. С ними одни проблемы.

dizza ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.