使用 HttpClient 5 配置 Elasticsearch Rest5Client 代理
在 Rest5Client 的异步 HTTP 构建器上设置中间代理,同时保持 Apache 4 与 5 的导入一致。
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 包。