У нас є веб-додаток на базі Java EE, що працює на сервері кластерних програм Glassfish . Вхідний трафік в основному буде RESTful запитами для представлень ресурсів нашого додатка на основі XML, але, можливо, 5% трафіку може бути для представлень на основі JSON або XHTML / CSS.
Зараз ми досліджуємо рішення щодо балансування навантаження для розподілу вхідного трафіку по всіх екземплярах Glassfish у кластері. Ми також розглядаємо, як вивантажити кластер за допомогою простроченої хеш-карти, розподіленої в пам'яті, чиїми ключами будуть імена ресурсів REST (наприклад, "/ користувач / bob", "/ group / jazzlovers") та значення яких: відповідні представлення XML
Один із підходів, який звучить багатообіцяюче, - це вбити обох птахів одним каменем і використовувати легкий, швидкий nginx сервер HTTP / зворотний проксі. Nginx буде обробляти кожен вхідний запит, спершу переглянувши його URI в запам’ятовуваному вигляді, щоб побачити, чи немає в ньому ще не закінченого представлення XML. Якщо ні, nginx надсилає запит до одного з екземплярів Glassfish. Модуль, що запам'ятовується nginx, описаний у цьому короткому описі .
Яке ваше загальне враження від nginx та memcached, використовуваних таким чином, наскільки ви щасливі з ними? Які ресурси вам виявилися найбільш корисними для того, щоб дізнатися про них? Якщо ви спробували їх, і вони не відповідали вашим цілям, чому б ні, і що ви використовували натомість?
Примітка. Ось відповідне питання . Перш ніж я дізнався про ServerFault, я запитав це в StackOverflow .
Редагувати: Усі відповіді тут поки що були дуже корисними, хоча прямого досвіду не було. Ця відповідь в кінцевому підсумку з’явилася на StackOverflow, і вона була досить бичачою в налаштуваннях nginx / memcached.