ES集群一切正常,项目配置一切正常,启动的时候会有一段时间的NoNodeAvailableException

150 阅读1分钟

1.背景

  • 项目中使用的es5.5.3,阿里云的elasticsearch。

2.问题描述

  • es的配置一切正常,Spring data eslaticsearch的版本没有冲突,项目启动之后的一小段时间内,进行请求es的操作,会有找不到节点的异常抛出。一段时间之后异常消失,一切正常。

3.解决

  • 查找了阿里云的es开发文档,有指明解决办法。

image.png

4.附上TransprotCLient的代码(适用于5.x版本的xpack访问)

@Configuration
public class TransportClientConfig {

   @Value("${elastic.cluster-name}")
   private String clusterName;//集群名称

   @Value("${elastic.user}:${elastic.password}")
   private String user;//账户名

   @Value("${elastic.ip}")
   private String ip;//集群ip

   @Value("${elastic.port}")
   private Integer port;//端口

   @Bean
   public TransportClient transportClient() throws UnknownHostException {
      return new PreBuiltXPackTransportClient(Settings.builder()
            .put("cluster.name", clusterName)
            .put("xpack.security.user", user)
            .put("client.transport.sniff", false)
            .build())
            .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(ip), port));
   }
}