windows本地起了一个es服务,使用TransportClient连接报错。
错误:
NoNodeAvailableException[None of the configured nodes are available
**配置–EsConfig **
@Configuration
public class EsConfig {
@Value("${es.cluster-name}")
private String clusterName;
@Value("${es.ip}")
private String ips;
@Value("${es.port}")
private String port;
@Bean("dataClient")
public TransportClient getTransPortClient() {
TransportClient client = null;
Settings settings = Settings.builder()
// 集群名, 如果你需要更改集群名(默认是elasticsearch)
.put("cluster.name", clusterName)
// 设置client.transport.sniff为true来使客户端去嗅探整个集群的状态,
// 把集群中其它机器的ip地址加到客户端中。这样做的好处是,一般你不用手动
// 设置集群里所有集群的ip到连接客户端,它会自动帮你添加,并且自动发现新加入集群的机器。
.put("client.transport.sniff", false)
.build();
String[] ipArray = ips.split(",");
try {
client = new PreBuiltTransportClient(settings);
for (String ip : ipArray) {//添加集群IP列表
TransportAddress transportAddress = new InetSocketTransportAddress(InetAddresses.forString(ip), Integer.parseInt(port));
client.addTransportAddresses(transportAddress);
}
} catch (Exception e) {
log.error("create es client error:{}", e);
if (client != null) {
client.close();
}
}
return client;
}
}
配置–YAML
es:
cluster-name: my-application
ip: 127.0.0.1
port: 9300
解决办法
修改es配置文件,之后重新启动。
默认cluster.name是被屏蔽的
项目推荐
IT-CLOUD :IT服务管理平台,集成基础服务,中间件服务,监控告警服务等。
IT-CLOUD-ACTIVITI6 :Activiti教程源码。博文在本CSDN Activiti系列中。
IT-ELASTICSEARCH : es学习事例。博文在本CSDN ELASTICSEARCH系列中。开源项目,持续更新中,喜欢请 Star~