Хороший сервер приложений Java для ORM

Я только что разговаривал с гораздо более опытным и квалифицированным коллегой о JPA и серверах приложений.

Прямо сейчас я использую JPA с Glassfish, который, по его словам, является плохим сервером приложений из-за больших накладных расходов. Он также упомянул, что использует Tomcat, который является стандартом, у которого также есть недостаток, заключающийся в том, что он не поддерживает тяжеловесы, такие как JPA, в Java EE. Затем разбрасываются несколько имен, таких как Hibernate и Spring, о которых я слышал, но не имел дела.

Итак, мой вопрос: какие есть хорошие варианты для сервера приложений, поддерживающего Java EE и JPA, который также популярен и быстр?

Примечание. Я задавал аналогичный вопрос в прошлом, и он почему-то был закрыт как неконструктивный. Если вы считаете, что это неконструктивный пост, пожалуйста, напишите ответ с подробным объяснением, прежде чем закрыть его.


person Some Newbie    schedule 22.08.2012    source источник
comment
Ваш вопрос не является конкретным вопросом программирования и приведет к дебатам. Однозначного ответа нет. Ваш коллега может быть предубежден против GlassFish и может бросаться громкими словами, но было бы более конструктивно сесть с ним и понять его мнение (которое должно быть основано на реальных фактах), а не принимать его на веру. Номинальная стоимость.   -  person Rajesh J Advani    schedule 22.08.2012
comment
Популярность несколько объективна. Например, я считаю, что сервер приложений Jonas (jonas.ow2.org) объективно менее популярны, чем основные (что не означает, что это плохой продукт). Серверами приложений высшего уровня являются Glassfish, Tomcat, JBoss, WebLogic и WebSphere. Слишком много параметров, чтобы судить о производительности сервера приложений, это зависит от платформы, оборудования, JVM, используемых функций и т. д.   -  person ewernli    schedule 22.08.2012
comment
Re: Раджеш, в любом случае здесь есть много правильных вопросов, не относящихся к программированию, поэтому я не думаю, что этот вопрос будет более проблематичным, чем остальные. Я разместил этот вопрос здесь, зная, что у всех могут быть разные мнения, но станет ли он флеймфестом или нет, это будет зависеть от способности респондентов к гражданским разногласиям / дискуссиям. Но да, я не принимаю все за чистую монету, поэтому я прошу вас, ребята, внести свой вклад! :). Чтобы немного сузить мой вопрос: если я использую только JPA, является ли Glassfish плохим выбором по сравнению с некоторыми другими.   -  person Some Newbie    schedule 22.08.2012


Ответы (6)


Какие есть хорошие варианты для сервера приложений, поддерживающего Java EE и JPA, который также популярен и быстр?

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

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

person Cratylus    schedule 22.08.2012

Я использую Jetty с реализацией JPA Hibernate, и она работает очень хорошо. По умолчанию это всего лишь подмножество спецификаций JavaEE, но оно легкое и может быть расширено внешними библиотеками для добавления недостающих частей JavaEE.

(Мое автономное приложение на основе причала работает с 160 МБ доступной оперативной памяти во встроенной системе)

person Toilal    schedule 22.08.2012

Как по мне: JBoss — самый популярный и стабильный сервер приложений с открытым исходным кодом.

Хорошее обсуждение доступно по адресу Stack Trace.

person Satish Pandey    schedule 22.08.2012
comment
определить самый стабильный, самый популярный? Если вы собираетесь что-то утверждать, доказательство является обязательным условием. Если у вас нет доказательств, то это личное мнение, основанное на некоторых проектах, над которыми вы работали ... поэтому, на мой взгляд, требуется, а не утверждает что-то как факт. Что значит самый популярный в чем-либо? он может быть несовершенен во многих отношениях, но популярен (например, операционная система Windows). - person DataNucleus; 22.08.2012
comment
@DataNucleus Извините .. Я исправил - person Satish Pandey; 22.08.2012

Я бы порекомендовал вам сначала понять потребности вашего приложения и понять, зачем вам нужен JPA.
Я ничего не имею против JPA, но в некоторых сценариях это может привести к проблемам с производительностью, которых вы не хотите, чтобы ваше приложение имело.
Сказав это, я бы порекомендовал вам работать с сервером, поддерживающим EJB-Lite.
Вы можете использовать, например, JBoss, как было предложено выше.
Еще одним интересным вариантом является использование TomEE , который предоставляет полный набор веб- профиль над котом.

person Yair Zaslavsky    schedule 22.08.2012
comment
Я использую JPA, потому что это упрощает обслуживание ORM. Если я делаю ORM вручную, мне становится обременительно следить за порядком и типом переменных всякий раз, когда что-то нужно изменить. Пока узкие места не на уровне, который включает ORM, поэтому я использую JPA. Я полагаю, одна вещь, которую я хотел бы знать, заключается в том, проводится ли какой-либо всеобъемлющий бенчмаркинг между, скажем,... Glassfish, Tomcat, JBoss и т. д. в различных доменах? Удобно, что можно найти что-то подобное. - person Some Newbie; 22.08.2012
comment
Справедливо, это ваш выбор. Я бы порекомендовал, помимо поиска тестов, которые могут относиться только к конкретным случаям использования (и, к сожалению, я также видел предвзятые тесты в прошлом), использовать профилировщик и проверить текущий стек приложений на наличие узких мест. - person Yair Zaslavsky; 22.08.2012
comment
Концептуально это не является узким местом, поскольку ограничивающим шагом является длительный обязательный интервал ожидания между запуском сценария, поэтому скорость не так важна. Что касается объективности, почти все в этом мире потенциально предвзято (даже ваши и мои комментарии), поэтому предостережение при чтении эталонных тестов заключается не в их предвзятости, а в том, читает ли читатель между строк, а также сверяется с другими тестами/обзорами. . - person Some Newbie; 22.08.2012
comment
Я согласен с вашим комментарием, что мы можем сказать, что все в этом мире потенциально предвзято. Я просто хотел убедиться, что вы знаете, что эталонные показатели не следует принимать как должное. К сожалению, я не пользователь Glassfish. Я использую JBoss с 2006 года и очень им доволен, особенно JBoss AS 7. - person Yair Zaslavsky; 23.08.2012
comment
Хорошо, на JBoss много голосов, так что это мой наиболее вероятный кандидат для чтения. Я думаю, что одна из вещей, которые я бы искал дальше, — это бинарное сравнение между Glassfish и JBoss и изучение того, почему люди выбирают одно, а не другое. Надеюсь, в Google есть много статей об этом! На заметку: мой коллега считает, что вопрос, который я задал, является рудиментарным. Если это так рудиментарно, я хотел бы знать, как все вы можете получить эти рудиментарные знания для вас после окончания колледжа. Читать много книг/API? - person Some Newbie; 23.08.2012

Вы можете использовать JPA вне полноценного сервера Java EE, но он должен быть правильно загружен. Я считаю, что у Spring есть способы сделать это, и он позволит вам использовать JPA в tomcat, причале и т. д.

person Matt    schedule 22.08.2012

У вас есть много вариантов выбора серверов приложений Java EE. Здесь представлено сравнение популярных серверов Java EE из Wiki. Все они являются хорошими серверами приложений. Но самое главное — это не сервер. Важнее использовать сервер, который более удобен для вашей среды разработки. Выберите более удобный для вас сервер.

person Sai Ye Yan Naing Aye    schedule 23.08.2012
comment
Круто, я не заметил вики-страницы об этом. - person Some Newbie; 23.08.2012