У нас есть веб-приложение на основе Java EE, работающее на кластере серверов приложений Glassfish . Входящий трафик будет в основном представлять собой запросы RESTful для представлений ресурсов нашего приложения на основе XML, но, возможно, 5% трафика может быть для представлений на основе JSON или XHTML / CSS.
Сейчас мы исследуем решения по балансировке нагрузки для распределения входящего трафика между экземплярами Glassfish в кластере. Мы также изучаем, как разгрузить кластер, используя memcached, распределенную хэш-карту в памяти, ключами которой будут имена ресурсов REST (например, "/ user / bob", "/ group / jazzlovers") и чьи значения соответствующие представления XML.
Один из подходов, который звучит многообещающе, - убить обеих птиц одним камнем и использовать легкий, быстрый HTTP-сервер nginx / обратный прокси-сервер. Nginx будет обрабатывать каждый входящий запрос, сначала просматривая его URI в memcached, чтобы увидеть, есть ли там еще не истекшее представление XML. Если нет, nginx отправляет запрос одному из экземпляров Glassfish. Модуль memcached для nginx описан в этой короткой статье .
Каково ваше общее впечатление от использования nginx и memcached, насколько вы счастливы с ними? Какие ресурсы вы нашли наиболее полезными для изучения? Если вы попробовали их, и они не соответствовали вашим целям, почему бы и нет, и что вы использовали вместо этого?
Примечание: вот связанный вопрос . Прежде чем я узнал о ServerFault, я спросил об этом в StackOverflow .
Изменить: Все ответы здесь были весьма полезны, хотя прямого опыта не было. Этот ответ в конечном итоге появился в StackOverflow, и он был довольно оптимистичным в настройке nginx / memcached.