【问题标题】:Configure Rest High Client with Elastic Search proxy使用 Elastic Search 代理配置 Rest High Client
【发布时间】:2020-08-22 15:54:05
【问题描述】:

有什么方法可以配置我的 rest 高客户端使用代理连接 es。我的配置是

    @Override
@Bean
public RestHighLevelClient elasticsearchClient() {
    return new RestHighLevelClient(RestClient.builder(HttpHost.create(elasticSearchUrl)));}

我的弹性搜索网址是:aaa.bbbb.ccc.company.com/api/elastic-search-proxy 在那种情况下,我得到 No such host is known (aaa.bbbb.ccc.company.com/api/elastic-search-proxy) 什么对我来说很清楚,但有什么选项可以配置它?

【问题讨论】:

  • 我的回答好运吗?

标签: spring-boot elasticsearch resthighlevelclient


【解决方案1】:

JHLRC initialization 的 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"));  
        }
    });

设置允许修改 http 客户端配置的回调(例如,通过 ssl 进行的加密通信,或 org.apache.http.impl.nio.client.HttpAsyncClientBuilder 允许设置的任何内容)

所以在你的情况下,你需要在下面的代码中给出你的原始主机

new HttpHost("localhost", 9200, "http"));

然后你需要在setHttpClientConfigCallback回调中定义一个回调到你的代理服务器。

new HttpHost("proxy", 9000, "http"));  

【讨论】:

    猜你喜欢
    • 2020-10-04
    • 1970-01-01
    • 2023-04-04
    • 2017-11-06
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-05
    相关资源
    最近更新 更多