From 12b6de75fdcf7801207ea7cfa2e3606a5d736c30 Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Mon, 13 Jan 2025 14:20:01 +0800 Subject: [PATCH] =?UTF-8?q?esclient=E5=88=9D=E5=A7=8B=E5=8C=96=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ChenfengElasticsearchAutoConfiguration.java | 12 +++++++++--- .../cf/imes/framework/es/config/EsProperties.java | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/cf-framework/cf-spring-boot-starter-elasticsearch/src/main/java/com/cf/imes/framework/es/config/ChenfengElasticsearchAutoConfiguration.java b/cf-framework/cf-spring-boot-starter-elasticsearch/src/main/java/com/cf/imes/framework/es/config/ChenfengElasticsearchAutoConfiguration.java index 455804002..204646e87 100644 --- a/cf-framework/cf-spring-boot-starter-elasticsearch/src/main/java/com/cf/imes/framework/es/config/ChenfengElasticsearchAutoConfiguration.java +++ b/cf-framework/cf-spring-boot-starter-elasticsearch/src/main/java/com/cf/imes/framework/es/config/ChenfengElasticsearchAutoConfiguration.java @@ -19,6 +19,7 @@ import org.apache.http.client.config.RequestConfig; import org.apache.http.conn.ssl.NoopHostnameVerifier; import org.apache.http.impl.client.BasicCredentialsProvider; import org.apache.http.impl.nio.client.HttpAsyncClientBuilder; +import org.apache.http.impl.nio.reactor.IOReactorConfig; import org.apache.http.ssl.SSLContextBuilder; import org.apache.http.ssl.SSLContexts; import org.elasticsearch.client.RestClient; @@ -41,6 +42,7 @@ import java.security.KeyStore; import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException; import java.security.cert.CertificateException; +import java.time.Duration; /** @@ -135,9 +137,9 @@ public class ChenfengElasticsearchAutoConfiguration { // 设置账号密码、连接信息 HttpAsyncClientBuilder httpAsyncClientBuilder = httpClientBuilder .setDefaultRequestConfig(RequestConfig.custom() - .setConnectTimeout(properties.getConnectionTimeout().toSecondsPart()) - .setSocketTimeout(properties.getSocketTimeout().toSecondsPart()) - .setConnectionRequestTimeout(properties.getConnectionRequestTimeout().toSecondsPart()) + .setConnectTimeout((int) properties.getConnectionTimeout().toMillis()) + .setSocketTimeout((int) properties.getSocketTimeout().toMillis()) + .setConnectionRequestTimeout((int) properties.getConnectionRequestTimeout().toMillis()) .build()); if (ObjectUtil.isNotNull(credentialsProvider)) { httpAsyncClientBuilder.setDefaultCredentialsProvider(credentialsProvider); @@ -146,6 +148,10 @@ public class ChenfengElasticsearchAutoConfiguration { // 开启ssl配置连接证书 httpAsyncClientBuilder.setSSLContext(buildSSLContext(properties)).setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE); } + // 手动开启keepalive + httpAsyncClientBuilder.setDefaultIOReactorConfig(IOReactorConfig.custom().setSoKeepAlive(true).build()); + // 手动设置保活时长 + httpAsyncClientBuilder.setKeepAliveStrategy(((response, context) -> Duration.ofMinutes(5).toMillis())); return httpAsyncClientBuilder; }; return RestClient.builder(toHttpHost(properties.getUris(), properties.isSecurityHttpSslEnable())).setHttpClientConfigCallback(httpClientConfigCallback).build(); diff --git a/cf-framework/cf-spring-boot-starter-elasticsearch/src/main/java/com/cf/imes/framework/es/config/EsProperties.java b/cf-framework/cf-spring-boot-starter-elasticsearch/src/main/java/com/cf/imes/framework/es/config/EsProperties.java index 2dd90ffe5..505c809ef 100644 --- a/cf-framework/cf-spring-boot-starter-elasticsearch/src/main/java/com/cf/imes/framework/es/config/EsProperties.java +++ b/cf-framework/cf-spring-boot-starter-elasticsearch/src/main/java/com/cf/imes/framework/es/config/EsProperties.java @@ -25,7 +25,7 @@ public class EsProperties { /** * Connection timeout used when communicating with Elasticsearch. */ - private Duration connectionTimeout = Duration.ofSeconds(10); + private Duration connectionTimeout = Duration.ofSeconds(5); /** * Socket timeout used when communicating with Elasticsearch.