当前位置: 首页 > 面试题库 >

获取org.elasticsearch.transport.NodeDisconnectedException:[] [inet [localhost / 127.0.0.1:9300]] [集群/节点/信息]已断开连接

米飞龙
2023-03-14
问题内容

我是Elastic Search Java Api [5.0]的新手。我正在使用elasticsearch-5.0.0。我尝试用Spring
Boot创建一个Java Application(Maven)。运行应用程序后,它显示

2016-11-04 23:32:19.339  INFO 8280 --- [][generic][T#2]]      org.elasticsearch.client.transport       : [X-Ray] failed to get node info for [#transport#-1][DESKTOP-8SIPHSN][inet[localhost/127.0.0.1:9300]], disconnecting...
org.elasticsearch.transport.NodeDisconnectedException: [][inet[localhost/127.0.0.1:9300]][cluster:monitor/nodes/info] disconnected

我的配置文件是

@Configuration
public class ElasticsearchConfiguration {

  @Bean
  public Client client() {

        TransportClient client = new TransportClient();
        TransportAddress address = new  InetSocketTransportAddress("localhost",9300);
        client.addTransportAddress(address);        
        return client;
    }

}

我正在使用默认群集“ elasticsearch”。我需要帮助以适当地找出原因来解决我的问题。


问题答案:

尝试使用PreBuiltTransportClient5.0文档中提到的内容:

TransportClient client = new PreBuiltTransportClient(Settings.EMPTY)
        .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300));

https://www.elastic.co/guide/zh-CN/elasticsearch/client/java-
api/current/transport-
client.html

另请注意,TransportClientfor ES版本2.x与5.x不兼容:

客户端必须具有与集群中的节点相同的主版本(例如2.x或5.x)。客户端可以连接到具有不同次要版本(例如2.3.x)的群集,但是有可能不支持新功能。理想情况下,客户端应具有与群集相同的版本。

https://www.elastic.co/guide/zh-CN/elasticsearch/client/java-
api/current/client.html

更新资料

作为连接测试,请尝试执行以下简单程序:

import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.elasticsearch.transport.client.PreBuiltTransportClient;

import java.net.InetAddress;
import java.net.UnknownHostException;

public class App {
    public static void main(String[] args) throws UnknownHostException {
        // The following settings aren't strictly necessary, because the default cluster name is "elasticsearch".
        Settings settings = Settings.builder().put("cluster.name", "elasticsearch").build();
        TransportClient client = new PreBuiltTransportClient(settings);
        client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300));
        System.out.println(client.connectedNodes());
    }
}

它应该打印到标准输出,如下所示:

[{luhcORJ}{luhcORJOSzSLPBeXocDsuQ}{mkTJpwIAQGuNYTHfRLqUIw}{127.0.0.1}{127.0.0.1:9300}]



 类似资料:
  • 问题内容: 我知道这个问题已经得到解决,但是我已经尽力了,无法解决我的问题。 我刚刚安装了elasticsearch并启动了它。这里的弹性日志: 因此,Elastic已在端口9300上完全运行并正在侦听。 我的群集名称是“我的应用程序”。 由elasticsearch.yml确认: 并且通过请求http:// localhost:9200 /来确认: 这是我的Maven依赖关系(elastic和c

  • 工人11056是在线工人11057是在线工人11058是在线工人11059是在线事件。JS:141抛ER;//未处理的“错误”事件^ 错误:在object.exports._errnoException(util.js:870:11)在exports._exceptionWithHostPort(util.js:893:20)在cb(net.js:1302:16)在rr(cluster.js:59

  • 我目前使用的是Kafka connect集群,它有两个节点,使用的是同一个 当使用curl/connectors时,我可以获得创建的连接器列表,但我看不到有关活动节点的信息,健康检查。。。

  • 问题内容: 我有一个带有redis的laravel(5.3)应用程序,用于会话(使用predis)。只要我使用单个redis节点(使用 config / database.php中的 默认方法),一切都可以正常工作。一旦我切换到Redis集群,尽管我开始像50%的时间一样出现MOVED错误(基于谷歌搜索,我知道这应该由predis管理,但不是这样)。 我尝试将cluster参数更改为true,但是

  • 微信小程序中原生提供了selectComponent/SelectorQuery.select方法获取自定义组件实例和wxml节点信息,但是该api使用起来不太方便,并且不具备平台无关性,我们提供了增强指令wx:ref用于获取组件实例及节点信息,该指令的使用方式同vue中的ref类似,在模板中声明了wx:ref后,在组件ready后用户可以通过this.$refs获取对应的组件实例或节点查询对象(

  • 目前EMQ在生态云提供服务的区域和Endpoint如下: AWS-北京 http://awsbj0.emq.api.xiaomi.com 或 https://awsbj0.emq.api.xiaomi.com AWS-Oregon http://awsusor0.emq.api.xiaomi.com 或 https://awsusor0.emq.api.xiaomi.com 金山云-北京6