我想要一种简单的方法来验证ES是否可用于Java 客户。我有一个看起来像这样的工厂来获得一个 客户端实例:
https://gist.github.com/1364734
优雅地处理ES不存在的场景的最佳方法是什么 可用的还是我有足够的?
答案 0 :(得分: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()); } }