Я запускаю свое Java-приложение и Elasticsearch 1.4.2 с помощью выскочки. Иногда, когда я перезапускаю свой сервер, я получаю NoShardAvailableActionException
в течение первых 5 запросов.Elasticsearch: NoShardAvailableActionException после запуска
Мое приложение сначала прочитало некоторые документы из Elasticsearch и Elasticsearch, похоже, не готово. Когда я немного подожду и перезагружу свое приложение, все работает.
Как проверить, готов ли мой кластер Elasticsearch (у меня только один узел) получить документы?
Я уже пытался проверить состояние кластера, но даже это уже желтый, я иногда в NoShardAvailableActionException
:
private static void checkClusterStateNotRed() throws Exception {
while(clusterState() == ClusterHealthStatus.RED) {
Logger.info("Elasticsearch cluster state is red);
Thread.sleep(1000);
}
}
private static ClusterHealthStatus clusterState() throws Exception {
return ElasticsearchClient.getInstance()
.admin().cluster()
.clusterStats(new ClusterStatsRequest())
.get()
.getStatus();
}