Мой веб-сервис java, работающий на Jetty, падает через несколько часов, и исследование показывает, что многие сокеты находятся в состоянии CLOSE_WAIT. Пока он работает нормально, похоже, что нет сокетов в состоянии CLOSE_WAIT, но когда он идет не так, есть нагрузки.
Я нашел это определение
CLOSE-WAIT: локальная конечная точка получила запрос о завершении соединения и подтвердила его, например. было выполнено пассивное закрытие, и локальной конечной точке необходимо выполнить активное закрытие, чтобы покинуть это состояние.
С netstat на моем сервере я вижу список сокетов tcp в состоянии CLOSE_WAIT, локальный адрес - мой сервер, а внешний адрес - мой балансировщик нагрузки. Поэтому я предполагаю, что это означает, что клиент (балансировщик нагрузки) только что завершил соединение на своем конце некорректным образом, и мой сервер неправильно закрыл соединение в конце.
Но как это сделать, мой код Java не касается сокетов низкого уровня?
Или это прекращение соединения балансировки нагрузки из-за более ранней проблемы, вызванной тем, что мой сервер делает неправильный код.