Elasticsearch 的 Rest5Client 通过配置回调暴露其 Apache HttpClient 5 构建器:

import co.elastic.clients.transport.rest5_client.low_level.Rest5Client;
import org.apache.hc.core5.http.HttpHost;

var proxy = new HttpHost("http", "proxy.example.net", 8080);

var rest = Rest5Client.builder(
    new HttpHost("https", "search.example.net", 9200))
    .setHttpClientConfigCallback(httpBuilder -> {
        httpBuilder.setProxy(proxy);
    })
    .build();

将 rest 交给应用的 Elasticsearch 传输配置,并在该组件关闭时一并关闭。搜索主机仍使用 HTTPS;代理的 http 方案描述的是与中间代理的连接。若要通过获准的公共代理访问可公开访问的搜索主机,HTTP 代理列表 提供了端点候选;请确认所选代理允许该搜索主机和端口。

如需代理认证,请在同一回调中挂接作用域合适的 Apache 5 凭据提供程序。Elasticsearch 账户请单独保存。

该回调接受一个 Consumer:在代码块内配置传入的构建器,不要返回替代对象。使用 org.apache.http 的 RestHighLevelClient 示例属于上一代;Apache 5 使用 org.apache.hc 包。

相关文章