Сегодня я потратил некоторое время, чтобы развернуть и настроить новый музыкальный автомат MP3 с веб-интерфейсом, чтобы повысить уровень слуховой демократии здесь, в SitePoint HQ. Как я упоминал здесь ранее , я написал его как веб-приложение на Java, потому что то, что ему нужно делать на стороне сервера, намного сложнее, чем то, с чем я бы хотел справиться, скажем, с помощью PHP.
Когда приложение запускается на сервере, оно создает сокет-соединение с сервером jukebox (которое работает на той же машине). Сервер jukebox уведомляет веб-приложение об изменениях, внесенных вошедшими в систему пользователями. Говоря об этом, каждый вошедший в систему пользователь создает дополнительное соединение с сервером jukebox, чтобы выдавать команды от имени этого пользователя.
Хотя интерфейс все еще довольно утилитарный, все идет хорошо:
Подготовка и запуск приложения заняли все 30 минут, включая загрузку и настройку Java, Tomcat и Ant, сборку и настройку сервера jukebox из CVS и установку моего скомпилированного веб-приложения. Но моя работа на этом не закончилась.
Компьютер в нашей серверной стойке, который предназначен для музыкального автомата MP3, довольно старый (Celeron 533 МГц с 128 МБ ОЗУ) и поначалу не подходил для задачи воспроизведения MP3 на Java , одновременно обрабатывая поисковые запросы из полдюжины пользователей через веб-приложение.
По совету Lachlan (другой Java-гик здесь) я заменил Tomcat 5.5 на Jetty и сразу увидел улучшение. Jetty запускается быстрее и значительно облегчает работу процессора и памяти. Единственное время, когда воспроизведение пропускается, — это если JSP нужно перекомпилировать на лету, что не проблема, так как это не сервер разработки.
Jetty полностью поддерживает спецификацию Servlet 2.4 (включая JSP 2.0), может быть настроен с виртуальными хостами и может быть встроен в приложения Java при необходимости. Ему не хватает некоторых наворотов Tomcat (подключение Apache, распределение нагрузки и т. Д.), Но если все, что вам нужно, это простой сервер веб-приложений Java, который не будет тратить ресурсы вашего перегруженного сервера, Jetty теперь мой лучший выбор.
Изменить: При дальнейшем исследовании Jetty поддерживает интеграцию Apache .
Тем не менее, мои прошлые жалобы на недовольство новичка Tomcat означают Jetty, чей XML-файл конфигурации фактически сопоставляется с серией вызовов методов Java. В результате вам необходимо просмотреть документацию по Java API, чтобы выяснить, как настроить конфигурацию Jetty (и, конечно, документации, предлагающей это, мало или нет).
Когда кто-то создаст современный сервер веб-приложений Java с удобной конфигурацией и интерфейсом администрирования?