Apache ConnectionClosedException: соединение закрыто,HttpAsyncRequestExecutor.endOfInput(HttpAsyncRequestExecutor.java:344)

У нас есть три приложения A,B и C, развернутые на одном и том же сервере tomcat. Между A и B происходит вызов HTTP (REST CALL) и другой вызов http от B до C(REST CALL)

Первоначально мы использовали синхронный HTTP-вызов, недавно мы изменили наш код на Асинхронный вызов. Мы использовали HttpAsyncClients для (приложение A для вызова приложения B) и для (приложение B для вызова приложения C).

мы получаем прерывистое org.apache.http.ConnectionClosedException: какое-то время мы получаем это исключение в журналах приложения A(Async Client to B) и некоторое время в приложении B(Async Client to C)

 CloseableHttpAsyncClient  client = HttpAsyncClients.custom()
                    .setMaxConnPerRoute(100))
                    .setMaxConnTotal(config.getInt(150)).build();

и на каждый запрос мы давали тайм-аут

final RequestConfig params = RequestConfig.custom().setConnectTimeout(300000) // 5min
                    .setSocketTimeout(300000).setConnectionRequestTimeout(300000).build();

Пожалуйста, найдите трассировку стека ниже:

   org.apache.http.ConnectionClosedException: Connection closed
        at org.apache.http.nio.protocol.HttpAsyncRequestExecutor.endOfInput(HttpAsyncRequestExecutor.java:344) [httpcore-nio-4.4.5.jar:4.4.5]
        at org.apache.http.impl.nio.DefaultNHttpClientConnection.consumeInput(DefaultNHttpClientConnection.java:261) [httpcore-nio-4.4.5.jar:na]
        at org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:81) [httpasyncclient-4.1.2.jar:na]
        at org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:39) [httpasyncclient-4.1.2.jar:na]
        at org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:114) [httpcore-nio-4.4.5.jar:4.4.5]
        at org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:162) [httpcore-nio-4.4.5.jar:4.4.5]
        at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:337) [httpcore-nio-4.4.5.jar:4.4.5]
        at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:315) [httpcore-nio-4.4.5.jar:4.4.5]
        at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:276) [httpcore-nio-4.4.5.jar:4.4.5]
        at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104) [httpcore-nio-4.4.5.jar:4.4.5]
        at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:588) [httpcore-nio-4.4.5.jar:4.4.5]
        at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60]

Обратите внимание, что этот вопрос не является дубликатом прерывистой исключительной ситуации ConnectionClosedException с трассировкой httpasynclient stacj. Это событие совершенно другое. И если эта проблема возникает периодически.

0 ответов

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