Java Enterprise Типовая конфигурация среды выполнения
Терминология Приложение (Application) - *.ear или *.war файл предназначенный для развертывания Кластер (Cluster) – одна или несколько виртуальных машин Java, предназначенных для работы приложений полностью идентичной конфигурации. Cell (ячейка) – логическое объединение узлов, управляемых совместно Узел (Node) – физический хост в ячейке
Цели кластеризации Увеличение производительности – Балансировка нагрузки запросов (Load balancing) – Параллельная обработка сообщений JMS (Work distribution) Защита от сбоев (Failover) – Автоматическое переключение на запасные узлы в случае отказа основного
Балансировка нагрузки Round – Robin (по-очереди) Weighted (взвешенная) Least Number of active requests (по наименьшей загрузке)
Реализации балансировщиков [Программный] Apache httpd mod_proxy_balancer [Аппаратный] Cisco ACE, F5 BigIP [Клиентский] Round Robin DNS
Проблемы для разработчика Если веб-приложение работает одновременно на нескольких машинах Где хранить состояние? Как пользоваться HTTP-сессией? Рассчитывать ли на файловую систему? Что делать с процессами, запускающимися по-расписанию?