соединения http и https сохраняются в CLOSE_WAIT при использовании apache camel - PullRequest
0 голосов
/ 12 ноября 2018

Я использую apache-camel в качестве клиента для запросов http и https.

После обработки запросов соединения входят в CLOSE_WAIT.

Мой верблюжий контекст не останавливается после выполнения запросов. Если я остановлю это вручную, тогда соединения будут TIME_WAIT.

Теперь мне интересно, могу ли я установить соединения для входа в TIME_WAIT с помощью какой-либо конфигурации в camel-context или кода для запросов http.

Отредактировано:

  1. Я пробовал решения, упомянутые для этой проблемы, такие как добавление заголовка "Connection" со значением "close". Но это не сработало.

  2. Я использовал HttpComponent, как показано ниже, для закрытия соединений в finally блоке

Код:

HttpComponent httpComponent = (HttpComponent) pContext.getComponent(ServerConstants.CAMEL_COMPONENT_HTTP);
httpComponent.getHttpConnectionManager().closeIdleConnections(0);

Второе решение работает для http соединений, но не для https.

Решение:

Наконец-то можно заставить его работать, определив пользовательский HeaderFilterStrategy, который не фильтрует заголовок Connection: close, и установив этот идентификатор bean-компонента фильтра в URL в качестве параметра запроса.

...