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.
Читайте также:
- Spring Boot: работа с NoSQL, Elasticsearch
- Spring Boot: работа с NoSQL, MongoDB
- Spring Boot: работа с NoSQL, Neo4j
Комментарии
Отправить комментарий