JBoss AS или Tomcat для применения в швах? И почему? - PullRequest
4 голосов
/ 19 декабря 2011

Мы собираемся развернуть веб-приложение на Java, созданное с использованием JBoss Seam в качестве среды приложения. Мы будем развертывать в кластерной установке, так как это приложение для электронной коммерции, и мы заботимся как о высокой доступности, так и о производительности. Мы выполнили всю нашу разработку и начальное тестирование с приложением, развернутым на JBoss 5.1, однако недавно мы стали беспокоиться о таких вещах, как объем памяти и производительность, и обсудили переход на Tomcat.

Наше приложение представляет собой приложение электронной коммерции, использующее типичное многоуровневое приложение, использующее JSF для представления, EJB3 для бизнес-уровня и JPA / Hibernate для сохранения в базе данных PostgreSQL. Мы также активно используем JBoss Cache 2.x для поддержки кэширования и Hibernate Search (Lucene) для поддержки поиска.

Мне бы очень хотелось услышать мнение сообщества о том, какой сервер приложений лучше всего подходит для приложений на основе Seam. Я понимаю, что нам придется внести некоторые изменения в нашу прикладную архитектуру (без EJB, таймер службы -> Кварцевый планировщик, JBoss Cache-> ehCache и т. Д.) Для поддержки миграции. Мы можем вносить эти изменения, если они сопоставимы с тем, что мы получили бы с JBoss.

С JBoss кажется, что кластерная установка намного проще. Сможем ли мы выполнить кластерную настройку с помощью Quartz? Ehcache? Как я уже упоминал, в настоящее время мы внедряем JBoss 5.1. Даст ли JBoss 7 более высокую производительность и меньший объем памяти? Если мы выбираем Tomcat, мы склоняемся к Tomcat 7. Есть ли веская причина вместо этого выбрать Tomcat 6.x?

Мне бы очень хотелось услышать ваше мнение и опыт работы с этим типом установки. Мы прочитали документацию. Мы провели несколько проверок концепции на всех различных платформах. Но трудно понять, с чем нам следует работать в производственном процессе, и мы не хотим делать неправильный выбор, а затем должны пересмотреть и протестировать все заново, потому что мы сделали неправильный выбор. Спасибо за любые мнения и советы, которые вы можете предоставить!

Ответы [ 3 ]

3 голосов
/ 19 декабря 2011

Не думаю, что кто-то может дать однозначный ответ на ваш вопрос с таким широким определением вашей системы.

В настоящее время я использую Seam / JBoss 5 в аналогичной установке (oracle вместо postgres), в основном по одной причине: поддержка. Поддержка профессиональных услуг RedHat в тесно интегрированном мире JBoss и Seam сама по себе - это то, что вы не должны игнорировать. Особенно в производственной среде. Даже если у вас его нет сейчас, вам будет удобно знать, что вы можете сделать это в будущем (при необходимости).

Тем не менее, для выбора одной или другой настройки, возможно, потребуется сначала проверить производительность приложения, чтобы выяснить, где именно у вас возникла проблема (при условии, что вы это делаете). В конце концов, соответствует ли размер сеанса реализации сервера или вы храните слишком много информации о сеансе? Вы используете репликацию сеанса или нет? Ты делаешь AJAX?

В большинстве случаев повышение производительности происходит за счет внедрения -> тестирования производительности -> цикла реализации, а не за счет изменения технологий реализации. Эй, даже Facebook использует MySQL для того, что каждый сразу посчитает непригодным (общедоступные профили - более 600 миллионов из них).

0 голосов
/ 19 декабря 2011

Для большей части службы контейнеров сервлетов JBoss управление осуществляется внутренним контейнером Tomcat, до JBoss 6.

JBoss - сервер приложений, а tomcat - контейнер сервлетов.Я не думаю, что вам следует радикально изменить существующие коды, чтобы по этой причине адаптироваться к Tomcat.

0 голосов
/ 19 декабря 2011

Ответ - «Это зависит».

Для принятия обоснованного решения вы можете рассмотреть следующие аспекты:

  • Хотите ли вы кодировать, используя только стандартAPI (Java EE) или зависит от специфичных для реализации функций
  • Простота конфигурации и обслуживания вашей инфраструктуры

Из моего личного опыта - мы разворачиваем сложные приложения на JBoss и простые на Tomcat / Jetty.

Кварц поддерживает кластеризацию, как и Ehcache.

...