是否有任何方法配置我的rest高级客户端来使用代理与es连接。我的配置是
@Override
@Bean
public RestHighLevelClient elasticsearchClient() {
return new RestHighLevelClient(RestClient.builder(HttpHost.create(elasticSearchUrl)));}
我的弹性搜索网址是: aaa.bbbb.ccc.company.com/api/elastic-search-proxy,在这种情况下,我没有这样的主机是已知的,(aaa.bbbb.ccc.company.com/api/elastic-search-proxy),什么是明确的,但有任何选项来配置它吗?
发布于 2020-05-08 03:20:20
它在JHLRC初始化的Elasticsearch文档中提到过,请使用下面的代码:
RestClientBuilder builder = RestClient.builder(
new HttpHost("localhost", 9200, "http"));
builder.setHttpClientConfigCallback(new HttpClientConfigCallback() {
@Override
public HttpAsyncClientBuilder customizeHttpClient(
HttpAsyncClientBuilder httpClientBuilder) {
return httpClientBuilder.setProxy(
new HttpHost("proxy", 9000, "http"));
}
});
org.apache.http.impl.nio.client.HttpAsyncClientBuilder设置回调,允许修改http客户端配置(例如,通过ssl加密通信,或允许设置的任何内容)
因此,在这种情况下,您需要在下面的代码中给出您的原始主机
new HttpHost("localhost", 9200, "http"));
然后,您需要在setHttpClientConfigCallback
回调中定义对代理服务器的回调。
new HttpHost("proxy", 9000, "http"));
发布于 2022-06-24 09:31:21
如果有人使用最新的Elastic客户端8.x,您可以使用这种方式将代理配置到rest客户端。(注意,代理应该已经在系统属性中设置)。也许能帮上忙。
val restClientBuilder = RestClient.builder(
HttpHost(randomHost, 443, https)
)*.setHttpClientConfigCallback {
HttpAsyncClientBuilder.create().useSystemProperties()
}*
https://stackoverflow.com/questions/61656321
复制相似问题