Я действительно рекомендую использовать GlassFish. Помимо вашего опыта, он использует сетевую инфраструктуру NIO ( Grizzly ), которая поддерживает очень большое количество одновременных подключений.
В основном мы используем JBoss, и я могу сказать, что JBoss5 также может поддерживать довольно большое количество подключений (насколько мне известно, он также использует коннектор на основе NIO).
Существует также контейнер EJB под названием Resin , который является частично открытым исходным кодом (в основном у них есть версия с открытым исходным кодом и закрытая версия). Люди говорят, что у него отличная производительность, но у меня нет возможности исследовать дальше.
И последнее: вы уверены, что хотите использовать контейнер JavaEE EJB? Фактически мы начали с контейнера JavaEE EJB, но из-за наших требований к производительности и т. Д. Сейчас мы пытаемся перейти на Tomcat + Spring. EJB имеет ограничение на потоковую модель и т. Д., Что может стать нежелательным ограничением, если у вас есть клиенты, отличные от веб-браузеров ...
До JavaEE5 у вас есть только этот "TimerService" для выполнения периодических задач и JMS для выполнения асинхронных вещей, что очень тяжело и может сильно раздражать.
Если вы говорите о полной Java EE, то Glassfish.
GFv2.1 надежен, GFv3 еще слишком молод, чтобы сказать, но предлагает новую Java EE 6.
Активно разрабатывается, бесплатная и коммерческая поддержка, хорошие форумы. Oracle опубликовала дорожную карту для этого.
Он прост в использовании, легко настраивается, хорошо организован. Отличная консоль.
Действительно хорошо задокументировано, огромное количество дополнительных документов и статей от людей, работающих с различными аспектами этого (Metro, Grizzly, JAX-RS, NetBeans и т. Д.).
NetBeans + Glassfish - это безболезненная готовая к работе возможность получить начал.
Предлагает кластеризацию и всевозможные варианты управления.
Мои текущие мысли:
Все могут поддерживать большие базы пользователей, и все подходят для 95% случаев использования хорошо.
Я бы начал по умолчанию сверху и двигался вниз по списку по мере усложнения ситуации / требований, например. сколько поддержки Java EE вам нужно
Также, если вы будете осторожны, чтобы не использовать какие-либо пользовательские функции, изменение в более поздний момент должно быть относительно простым.
Это основано исключительно на моем личном опыте и немного упрощено - об этом можно писать книги!
Если вам действительно нужна Java EE (строго говоря), то JBoss - хороший вариант. Если вам не нужна настоящая Java EE, тогда вам пригодится Tomcat. SpringSource также предоставляет корпоративную версию Tomcat с поддержкой под названием tc Server , которая будет хорошим вариантом, если вам не нужна настоящая Java EE.
Если вы ищете сервер Java EE, у вас есть два варианта: GlassFish или JBoss (У Geronimo или Jonas слишком маленькие сообщества, и я не знаю серьезных ссылок на них - что не значит, что их нет - я бы не стал их выбирать). Обе являются серьезными платформами, поддерживают кластеризацию и высокую доступность и используются для создания крупномасштабных кластеров и предлагают коммерческую поддержку, если это имеет значение.
Теперь краткий обзор различных версий:
В конце концов, если ваш проект не будет запущен в производство до 2011 года, я бы рассмотрел Java EE 6. Если нет, то выберите сервер Java EE 5. В любом случае не основывайте свой выбор только на мнениях в сети. Загрузите оба сервера, настройте кластеры по крайней мере из четырех узлов на двух машинах (это минимум, используйте кластер большего размера, если возможно), запустите тест с репрезентативным доказательством концепции вашего приложения. И не стесняйтесь привлекать людей из JBoss и Oracle, я почти уверен, что они будут рады помочь доказать, что их решение является лучшим :)
Для JBoss взгляните на Bela Доклад Бана Большие кластеры в JBoss (pdf) на JBoss World 2009. Также проверьте сеансы из JBoss World 2010 .Что касается GlassFish, ознакомьтесь с их историями и, более конкретно, в Telco . Свяжитесь с Sun / Oracle и RedHat для получения дополнительных ссылок.