我想要一种简单的方法来验证 ES 是否可用于 Java 客户端。我有一个看起来像这样的工厂来获取客户端实例:
https://gist.github.com/1364734
优雅地处理 ES 不可用的情况的最佳方法是什么,或者我有什么足够的?
我想要一种简单的方法来验证 ES 是否可用于 Java 客户端。我有一个看起来像这样的工厂来获取客户端实例:
https://gist.github.com/1364734
优雅地处理 ES 不可用的情况的最佳方法是什么,或者我有什么足够的?
谢伊此前证实,这种方法是一种很好的方法。该方法也得到了文档的支持。
至于优雅的处理。您应该只错误尝试执行搜索的请求或进程。可能已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()); } }