Мониторинг клиента HTTP - PullRequest
       17

Мониторинг клиента HTTP

0 голосов
/ 30 сентября 2019

Я использую ConnPoolControl<HttpRoute> и PoolingHttpClientConnectionManager для выполнения нескольких http-запросов к службам SOAP.

Во время нагрузочного теста с использованием Jmeter я получаю исключение ConnectionPoolTimeoutException. Поэтому я сначала попытался отследить пул соединений, используя приведенный ниже код.

При локальном воспроизведении ошибки мой журнал всегда показывает следующее:

connPoolControl stats: [leased: 0; pending: 0; available: 0; max: 200]

ЛюбойИдея о том, почему в аренде всегда ноль?


public class WebServiceConfig {

    public static ConnPoolControl<HttpRoute> connPoolControl;

    public WebServiceMessageSender webServiceMessageSender(String connectionTimeout, String readTimeout) {
        return makeSender(Integer.valueOf(readTimeout), Integer.valueOf(connectionTimeout));
    }

    public HttpComponentsMessageSender makeSender(Integer readTimeout, Integer connectionTimeOut) {
        HttpComponentsMessageSender sender = new HttpComponentsMessageSender();
        sender.setReadTimeout(readTimeout);
        sender.setConnectionTimeout(connectionTimeOut);

        PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager();
        connManager.setMaxTotal(200);
        connManager.setDefaultMaxPerRoute(50);

        CloseableHttpClient poolingHttpSoapClient = HttpClients.custom()
                .setConnectionManager(connManager)
                .build();

        sender.setHttpClient(poolingHttpSoapClient);

        connPoolControl = connManager;

        return sender;
    }
}
log.info("before connPoolControl stats: " + WebServiceConfig.connPoolControl.getTotalStats().toString());

MySoapResponse response = (MySoapResponse)
                    webServiceTemplate.marshalSendAndReceive(host, request);

log.info("after connPoolControl stats: " + WebServiceConfig.connPoolControl.getTotalStats().toString());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...