Я использую apache-camel в качестве клиента для запросов http и https.
После обработки запросов соединения входят в CLOSE_WAIT
.
Мой верблюжий контекст не останавливается после выполнения запросов.
Если я остановлю это вручную, тогда соединения будут TIME_WAIT
.
Теперь мне интересно, могу ли я установить соединения для входа в TIME_WAIT
с помощью какой-либо конфигурации в camel-context или кода для запросов http.
Отредактировано:
Я пробовал решения, упомянутые для этой проблемы, такие как добавление заголовка "Connection"
со значением "close"
. Но это не сработало.
Я использовал HttpComponent
, как показано ниже, для закрытия соединений в finally
блоке
Код:
HttpComponent httpComponent = (HttpComponent) pContext.getComponent(ServerConstants.CAMEL_COMPONENT_HTTP);
httpComponent.getHttpConnectionManager().closeIdleConnections(0);
Второе решение работает для http
соединений, но не для https
.
Решение:
Наконец-то можно заставить его работать, определив пользовательский HeaderFilterStrategy
, который не фильтрует заголовок Connection
: close
, и установив этот идентификатор bean-компонента фильтра в URL
в качестве параметра запроса.