5

我想要一种简单的方法来验证 ES 是否可用于 Java 客户端。我有一个看起来像这样的工厂来获取客户端实例:

https://gist.github.com/1364734

优雅地处理 ES 不可用的情况的最佳方法是什么,或者我有什么足够的?

4

1 回答 1

0

谢伊此前证实,这种方法是一种很好的方法。该方法也得到了文档的支持。

至于优雅的处理。您应该只错误尝试执行搜索的请求或进程。可能已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

于 2011-12-07T15:44:19.313 回答