Настройка прокси для Elasticsearch Rest5Client с HttpClient 5
Задайте посредник в асинхронном HTTP-сборщике Rest5Client, сохраняя согласованность импортов Apache 4 и 5.
Rest5Client в Elasticsearch предоставляет свой сборщик Apache HttpClient 5 через callback конфигурации:
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-прокси предлагает кандидатов конечных точек; убедитесь, что выбранный прокси разрешает хост поиска и порт.
Для аутентификации прокси подключите в том же callback поставщика учётных данных Apache 5 с подходящей областью действия. Храните учётную запись Elasticsearch отдельно.
Callback принимает Consumer: настройте переданный сборщик внутри блока, не возвращая замену. Примеры RestHighLevelClient с org.apache.http относятся к предыдущему поколению; Apache 5 использует пакеты org.apache.hc.