这是我查询Elastic的函数:
public static SearchHits queryES(String index, QueryBuilder builder) throws UnknownHostException {
TransportAddress address = new TransportAddress(InetAddress.getByName("localhost"), 9300);
Settings settings = Settings.builder()
.put("cluster.name", Config.ES_CLUSTER_NAME)
.put("client.transport.sniff", false)
.build();
org.elasticsearch.client.Client client = new PreBuiltTransportClient(settings).addTransportAddress(address);
return client.prepareSearch(index).setQuery(builder).get().getHits();
}
elasticsearch.yml中的所有变量似乎都是正确的。但是,在我运行此代码之后,例如,在不到1分钟内成功调用此函数(它返回正确的数据),我得到了NoNodeAvailableException
。然后几乎所有后续调用都会遇到此异常。它有时会恢复,然后再次NoNodeAvailableException
。
我在我的电脑上运行ES 6.2.2,传输客户端版本也是最新版本。健康状况为YELLOW
。可能是我重复NoNodeAvailableException
的原因是什么?
编辑:例外情况的一个例子:
NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{-MmALnp3SKu1JUqXLPJ86w}{localhost}{127.0.0.1:9300}]]