Шей ранее подтвердил, что этот подход хорош.Подход подкреплен также документацией .
Что касается изящной обработки.Вы должны просто ошибиться в запросе или процессе, который пытается выполнить поиск.Возможно, TransportClient
подключится и будущие запросы могут быть успешными.
Копирование вашей функции здесь для полноты картины.
private void verifyConnection(TransportClient client) {
ImmutableList<DiscoveryNode> nodes = client.connectedNodes();
if (nodes.isEmpty()) {
throw new ElasticSearchUnavailableException("No nodes available. Verify ES is running!");
} else {
log.info("connected to nodes: " + nodes.toString());
}
}
От https://gist.github.com/1364734