spring-boot - 使用 Elastic Search 代理配置 Rest High Client
问题描述
有什么方法可以配置我的其余高客户端以使用代理与 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-代理)什么对我来说很清楚,但有什么选项可以配置它吗?
解决方案
它在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"));
}
});
设置允许修改 http 客户端配置的回调(例如,通过 ssl 的加密通信,或 org.apache.http.impl.nio.client.HttpAsyncClientBuilder 允许设置的任何内容)
因此,在您的情况下,您需要在下面的代码中提供您的原始主机
new HttpHost("localhost", 9200, "http"));
然后您需要在回调中定义对代理服务器的回调setHttpClientConfigCallback
。
new HttpHost("proxy", 9000, "http"));
推荐阅读
- css - 如何将点击链接添加到嵌入式 vimeo 视频?
- javascript - 导出/导入 javascript 模块
- xamarin - 如何在框架 Xamarin.Forms 中显示分组和分组项目
- python - ArangoDB get_or_create 文档的最佳方法
- javascript - 将道具传递给不带引号的组件
- asp.net-core - Razor Pages ASP.NET Core 3.1 - 如何动态创建多个单选按钮组
- asp.net-core - 根据验证程序,远程证书无效 - NET Core WebAPI
- laravel - 函数 App\Awe\JsonUtility::addNewProduct() 的参数太少,
- spring-boot - 对于具有 camunda-bpm-spring-boot-starter-rest hibernate 属性的项目会影响指标,输出无法正常工作(仅部分)
- logging - 使用 sed 从日志中删除私人数据是否安全