Есть проблема. У меня есть приложение, написаное на velocity и внутри него есть следующий код:
#set($regular = true)
#if ($regular)
<frame src="webservice1.com/?id=123&name=misha" />
#else
<frame src="webservice2.com/?UserIdentifier=123&UserName=misha" />
#end
Бывает так, что webservice1 ложится медным тазом путём накрывания. В таком случае я иду в этот скрипт и меняю переменню
$regular=false
Тупо — но хорошо работает. В таком случае webservice2 начинает принимать запросы от моего приложения.
Проблема в том, что второй сервис не предоставляет полного функционала и народ предпочитает первый, но первый падает.
Список параметров, передаваемый на сервис, одинаковый, но их имена разные. Переписать сервисы возможности нет.
У меня в сети крутится varnish, который ревностно следит за работоспособностью сервисов путём
.probe
— всё бы с этим хорошо, но я не могу создать нормальный director в varnish потому что я не могу разобрать параметры в прокси-сервере и пересобрать их заново. И вообще не для прокси-сервера это задача — рыться в параметрах.
Я могу написать свою страницу, типа webserviceredirector.vm и из неё перенаправлять, но я не знаю, как сделать что-то типа
.probe
в velocity. Тоесть пробингом занимается varnish, а перенаправлением java.
Вот теперь у меня вопрос: как всё это скрестить так, чтобы вышел
хороший колючий ёжик нормальный редиректор, который будет пробовать сервисы и в случае их падения переключать их (на время пока сервис не поднимется обратно)?