#java #tomcat #load-balancing #high-availability
#java #tomcat #балансировка нагрузки #высокая доступность
Вопрос:
Пожалуйста, рассмотрите приведенный ниже сценарий.
Я реализовал балансировщик нагрузки apache с использованием mod jk. За балансировщиком нагрузки apache стоят три tomcat. Все они находятся на разных машинах. Допустим, tomcat-1 обслуживает запрос, и перед завершением запроса он отключается из-за какой-то проблемы.Поскольку кластеризация Tomcat настроена, два других tomcat будут обрабатывать дальнейшие запросы. Но как обработать этот неудачный запрос, который уже был принят tomcat-1. Есть ли какое-либо решение?
Ответ №1:
Чтобы ваш прокси-сервер повторил ваш запрос на другом узле после сбоя, mod jk должен был бы знать, что запрос был idemopotent.
Я вижу, что добавление этого знания idemoptency обсуждалось давным-давно. https://bz.apache.org/bugzilla/show_bug.cgi?id=39692
Я сомневаюсь, что они реализовали эту функциональность.
Я видел, как другие решения с обратным прокси-сервером реализуют идентификатор идемпотентности. Кажется, я помню, что у Weblogic есть такая возможность. Я также видел это с некоторыми аппаратными прокси.
Комментарии:
1. Спасибо за ваш ценный отзыв.