Spring Boot: работа с NoSQL, подключение к Elasticsearch

Подключение к Elasticsearch с использованием Reactive REST клиентов

Spring Data Elasticsearch поставляет ReactiveElasticsearchClient для запросов экземпляров Elasticsearch в реактивном режиме. Он построен поверх WebClient WebFlux, поэтому для включения этой поддержки полезно использовать зависимости spring-boot-starter-elasticsearch и spring-boot-starter-webflux.

По умолчанию Spring Boot автоматически настраивает и регистрирует компонент ReactiveElasticsearchClient, который нацелен на localhost:9200. Вы можете дополнительно настроить его настройку, как показано в следующем примере:

spring.data.elasticsearch.client.reactive.endpoints=search.example.com:9200
spring.data.elasticsearch.client.reactive.use-ssl=true
spring.data.elasticsearch.client.reactive.socket-timeout=10s
spring.data.elasticsearch.client.reactive.username=user
spring.data.elasticsearch.client.reactive.password=secret

Если свойств конфигурации недостаточно, и вы хотите полностью контролировать конфигурацию клиента, вы можете зарегистрировать пользовательский компонент ClientConfiguration.

Подключение к Elasticsearch с помощью Jest

Теперь, когда Spring Boot поддерживает официальный RestHighLevelClient, поддержка Jest устарела.

Если у вас есть Jest на пути к классам, вы можете добавить автоматически настроенный JestClient, который по умолчанию нацелен на localhost:9200. Вы можете дополнительно настроить настройку клиента, как показано в следующем примере:

spring.elasticsearch.jest.uris=https://search.example.com:9200
spring.elasticsearch.jest.read-timeout=10000
spring.elasticsearch.jest.username=user
spring.elasticsearch.jest.password=secret

Вы также можете зарегистрировать произвольное количество bean-компонентов, которые реализуют HttpClientConfigBuilderCustomizer для более сложных настроек. В следующем примере настраиваются дополнительные параметры HTTP:

static class HttpSettingsCustomizer implements HttpClientConfigBuilderCustomizer {

    @Override
    public void customize(HttpClientConfig.Builder builder) {
        builder.maxTotalConnection(100).defaultMaxTotalConnectionPerRoute(5);
    }

}

Чтобы получить полный контроль над регистрацией, определите компонент JestClient.


Читайте также:


Комментарии

Популярные сообщения из этого блога

Методы класса Object в Java

Как получить текущий timestamp в Java

Основные опции JVM для повышения производительности и отладки