java - Java使用https连接elasticsearch集群
问题描述
我为 elasticsearch 集群安装了搜索防护。现在需要使用账号密码连接集群,使用https方式,但是根据我的代码,启动后查询操作会报错,代码如下
当我使用下面的代码时,我会得到一个错误。
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
@Bean
public static RestHighLevelClient getInstance() {
String esAuth = "Basic " + Base64.encode(user + ":" + password);
Header[] defaultHeaders = new Header[]{new BasicHeader("Authorization", esAuth)};
client = new RestHighLevelClient(
RestClient.builder(new HttpHost(ip, port, "https"))
.setDefaultHeaders(defaultHeaders)
.setMaxRetryTimeoutMillis(150000)
.setRequestConfigCallback(requestConfigBuilder -> requestConfigBuilder
.setConnectTimeout(5000)
.setSocketTimeout(150000)));
return client;
}
这是一个错误:
java.lang.IllegalStateException: Request cannot be executed; I/O
reactor status: STOPPED at
org.apache.http.util.Asserts.check(Asserts.java:46)
~[httpcore-4.4.10.jar:4.4.10] at
org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase.ensureRunning(CloseableHttpAsyncClientBase.java:90)
~[httpasyncclient-4.1.4.jar:4.1.4] at
org.apache.http.impl.nio.client.InternalHttpAsyncClient.execute(InternalHttpAsyncClient.java:123)
~[httpasyncclient-4.1.4.jar:4.1.4] at
org.elasticsearch.client.RestClient.performRequestAsync(RestClient.java:529)
~[elasticsearch-rest-client-6.4.3.jar:6.5.4] at
org.elasticsearch.client.RestClient.performRequestAsyncNoCatch(RestClient.java:514)
~[elasticsearch-rest-client-6.4.3.jar:6.5.4] at
org.elasticsearch.client.RestClient.performRequest(RestClient.java:226)
~[elasticsearch-rest-client-6.4.3.jar:6.5.4] at
org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1593)
~[elasticsearch-rest-high-level-client-6.5.4.jar:6.5.4]
解决方案
推荐阅读
- mysql - 如何在 PhpStorm 中用本地 docker SQL 表替换 PhpMyAdmin SQL 表
- r - R:列表列表中每个列表的行名
- r - 如何让我的 y 轴标签到达绘图的顶部?
- css - 在 Angular 应用程序中单击时触发 CSS 类(动画)
- javascript - D3.js 强制有向图节点的不同形状
- asp.net-mvc - MVC 如何创建具有默认值的新对象
- javascript - 在 Firebase 中订购实时更新
- wpf - 标签内容的 WPF 转换器
- docker - 将所有服务端口转发到单个容器
- android - 如何在不解码的情况下在画布上绘制压缩图像?