Spring Data Elasticsearch автоматически переподключается - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть приложение Spring Boot, где я использую ElasticsearchTemplate для подключения к своему ElasticSearch.Однако, когда это работает, и я отключаю Elasticsearch, каждый раз, когда я использую ElasticTemplate метод, я получаю org.elasticsearch.client.transport.NoNodeAvailableException.Это нормально, потому что ElasticSearch не работает.

Однако, когда ElasticSearch работает обратно, я все равно получаю org.elasticsearch.client.transport.NoNodeAvailableException, как будто это не пытается восстановить соединение, но как только оно потеряно, мне нужно перезапустить все мое приложение.

Как это решить?Есть ли способ заставить его попытаться переподключиться к ealsticSearch после того, как ES не работает?

1 Ответ

0 голосов
/ 22 ноября 2018

TransportClient отправляет сигнал сердцебиения каждые 5 секунд, чтобы убедиться, что узел жив, и, если нет, сбросить его.

При включенном сниффинге клиент будет подключаться к вновь обнаруженным узлам или к вновь возникающему старому узлу.

Так что для свойства "client.transport.sniff" в настройках TransportClient должно быть установлено значение trueПомогите.См. https://www.elastic.co/guide/en/elasticsearch/client/java-api/6.5/transport-client.html

Кстати: рассмотрите возможность переключения на отдыхающий клиент, поскольку использование транспортного клиента помешает вам перейти на будущие выпускиasticsearch (https://www.elastic.co/blog/state-of-the-official-elasticsearch-java-clients)

...