Я пытаюсь создать пул соединений с одним соединением, используя PoolingHttpClientConnectionManager и ClosableHttpClient для HTTPS, и повторно его использовать - PullRequest
0 голосов
/ 27 июня 2019

Попытка создать пул соединений, в котором будет создано только одно HTTPS-соединение, и при получении следующего запроса будет использоваться предыдущий пул соединений.В настоящее время, когда я пытаюсь выполнить любой запрос каждый раз, когда устанавливается новое соединение, а предыдущее соединение переходит в состояние ожидания времени.

Ниже используемого фрагмента кода он работает для соединения HTTP, но не для HTTPS

  SslConfigurator sslConfig = SslConfigurator.newInstance().keyStoreFile(this.connectionInfo.getKeyStorePath()).keyStorePassword(connectionInfo.getKeyStorePassword()).keyStoreType("JKS").trustStoreFile(this.connectionInfo.getKeyStorePath()).trustStorePassword(connectionInfo.getKeyStorePassword()).securityProtocol("TLS");
                logger.info("SSL CONFIG Accepted");
                sslContext = sslConfig.createSSLContext();
                SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext,NoopHostnameVerifier.INSTANCE);
                logger.info("SSL CONTEXT CREATED, Building Client" );

                Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory> create().register("https", sslsf).build();
                connManager = new PoolingHttpClientConnectionManager(socketFactoryRegistry);
                connManager.setMaxTotal(1);
                connManager.setDefaultMaxPerRoute(1);

                config = RequestConfig.custom().setConnectTimeout(60000).setConnectionRequestTimeout(60000).setSocketTimeout(60000).build();
                client = HttpClients.custom().setDefaultRequestConfig(config).setConnectionManager(connManager).build();

1 Ответ

0 голосов
/ 28 июня 2019

connManager.setMaxTotal (1) *; 1 002 *

Я не уверен, почему вы думаете, что это не имеет никакого эффекта, потому что это определенно должно ограничивать общее количество подключений в пуле только по одному за раз.

В вашем конкретном случае вы должны использовать BasicHttpClientConnectionManager вместо PoolingHttpClientConnectionManager

...