Transport Client 访问 es 常见问题

es 连接出错,错误信息如下:

[None of the configured nodes are available:[{#transport#-1}{Wn5UYXoTTIaPT4LZ3-RtZg}{???.???.?.???}{???.???.?.???:9200}]]

常见问题场景:

1)端口应该为 9300;

2)TransportClient 版本与 ES 版本不一致;

3)Client.transport.sniff 参数值为 false;如果值为 true 会报 NoNodeAvailableException 。当 ES 服务器监听使用内网服务器 IP 而访问使用外网 IP 时,如果将 client.transport.sniff 设置为 true,则在自动发现时会使用内网 IP 进行通信,导致无法连接到 ES 服务器;建议将参数设置为 false,然后直接使用 addTransportAddress 方法手动添加入口节点;

4)InetAddress.getByName() 方法中参数值,必须替换为您的 ES 实例基本信息界面中的内网地址(比如 192.168.1.115)。

举例说明:

public TransportClientgetESConnection() {

        TransportClient client =null;

        try {

                    Settings esSettings = Settings.builder()

                    .put("cluster.name", "elasticsearch_cluster")// 设置ES实例的名称

                    .put("client.transport.sniff", false)// 自动嗅探整个集群的状态,把集群中其他ES节点的ip添加到本地的客户端列表中

                    .build();

            client =new PreBuiltTransportClient(esSettings);// 初始化 client 较老版本发生了变化,此方法有几个重载方法,初始化插件等。

            // 此步骤添加 IP ,至少一个,其实一个就够了,因为添加了自动嗅探配置

            client.addTransportAddress(new TransportAddress(InetAddress.getByName("192.168.1.115"), 9300));

        }catch (UnknownHostException e) {

            log.info("elasticsearch连接异常信息 : {}", e.getMessage());

        }

        return client;

    }

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文所有内容皆关于 ES和 kibana 一、简介 ELKB即elasticsearch、logstash、ki...
    闲云戏雨阅读 5,429评论 0 0
  • /** *该篇文章主要介绍如何学习ES,如何入门,ES简单的检索方式等(ES版本2.4.1) **/ public...
    北海老王阅读 1,657评论 0 0
  • 越来越多的企业已经采用ELK解决方案来对其公司产生的日志进行分析,笔者最近着手在生产环境部署自己的ELK stac...
    运维前线阅读 5,497评论 0 4
  • 昨天写作群战友佳静组织了一次交流,关于新年写作的一些想法,提升自己写作的计划,以及对于写作群规则的一些提议,为新的...
    穆建园阅读 1,319评论 1 1
  • 总感觉自己的世界是灰暗的。作为一个已是二十稍多一点的青年来说可以说每天都在渴望着成功。而事实呢!渴望虽在渴望,而做...
    在思考阅读 1,540评论 0 0