Как Zeus(балансировщик нагрузки) справится с закрытым соединением

В настоящее время мы сталкиваемся с одной проблемой с проблемой тайм-аута. Наше приложение основано на Jetty и использует Zeus в качестве балансировки нагрузки. Значение по умолчанию maxIdleTime установлено в 30000 в файле jetty.xml. Когда запрос / соединение превышает 30 секунд, состояние соединения изменится на TIME_WAIT, но мы получаем внутреннюю ошибку HTTP 500 на стороне браузера.

Я предполагаю, что ошибка HTTP 500 исходит от Zeus, но я хочу подтвердить это: как Zeus будет обрабатывать закрытое соединение? ИЛИ Служба причала отправляет 500 к Зевсу? Если так, как я могу это подтвердить?

1 ответ

Решение

Безошибочный способ сгладить происходящее здесь - это перехватить пакеты, используя что-то вроде ethereal или tcpdump между балансировщиком нагрузки и сервером Jetty, и вы можете использовать инструменты сети в чем-то вроде firebug или инструментов разработчика chrome, чтобы увидеть, что происходит на той стороне соединения. Вы также можете включить отладку на стороне причала, чтобы посмотреть, что конкретно он делает.

В любом случае, если вы используете настройки тайм-аута, вам нужно либо увеличить эти настройки, либо выбрать правильную стратегию для их устранения, чтобы избежать такого рода проблем, при условии, что вы не хотите, чтобы ошибка 500 отображалась в браузере.

Другие вопросы по тегам