У меня есть корпоративное веб-приложение Java, которое использует Tomcat6 + Struts + Hibernate + MySql. в настоящее время он публично запущен и работает на одном сервере. Из-за проблем с производительностью мы должны переместить приложение в кластерную среду. В любом случае я хочу использовать кластеризацию Tomcat6, как показано ниже:
- Машина балансировки нагрузки, включая веб-сервер (Apache + mod_proxy) в качестве интерфейса
- Некоторые машины-серверы приложений, на каждой из которых запущен экземпляр tomcat6
- Серверная часть управления сеансом
- И наконец сервер db
что-то вроде этого
Машина балансировки нагрузки получает все запросы и в зависимости от алгоритма балансировки перенаправляет их на соответствующую машину tomacat6. После выполнения бизнес-части ответ возвращается веб-серверу, а в конце - пользователю. В этом сценарии интерфейсная машина обрабатывает все запросы и ответы, поэтому это будет узким местом в приложении.
Есть ли в кластере Apache Tomcat способ балансировки нагрузки и веб-серверов? Я имею в виду размещение балансировщика нагрузки во внешнем интерфейсе и оставление части обработки запросов / ответов нескольким веб-серверам.