当前位置: 首页 > 知识库问答 >
问题:

在elasticsearch中获取TransportClient实例时获取ConnectTransportException

苏涵润
2023-03-14

我正在使用TransportClient创建elasticsearch客户端实例,代码如下。

public static Client getInstance() {
    String ipAddress = MessageTranslator.getMessage("es.cluster.ip");
    int transportClientPort = Integer.parseInt(MessageTranslator
                .getMessage("es.transportclient.port"));

    logger.debug("got the client ip as :" + ipAddress + " and port :"
            + transportClientPort);
    if (instance == null) {
        logger.debug("the client instance is null, creating a new instance");
        ImmutableSettings.Builder settings = ImmutableSettings
                .settingsBuilder();
        settings.put("node.client", true);
        settings.put("node.data", false);
        settings.put("node.name", "node-client");
        settings.put("cluster.name", "elasticsearch");
        settings.build();
        instance = new TransportClient(settings)
                .addTransportAddress(new InetSocketTransportAddress(
                        ipAddress, transportClientPort));
        logger.debug("returning the new created client instance...");
        return instance;
    }
    logger.debug("returning the existing transport client object connection.");
    return instance;
}

问题有时是代码正在工作并索引数据,但有时我会遇到以下问题。

14-08-2014 12:49:07846调试[elasticsearch[节点客户端][传输客户端工作者][T#8]{新I/O工作者#8}]组织。弹性搜索。常见的登录中。log4j。Log4jESLogger 104-[node client]与[[Nuke-Frank Simpson][P_-PZbTXyimWCOvkC7ow][aricloudvmserver3.aricent.com][inet[/10.203.238.139:9300]],频道关闭事件14-08-2014 12:49:11134调试[elasticsearch[node client][generic][T#1]]org。弹性搜索。常见的登录中。log4j。Log4jESLogger 109-[node client]无法连接到节点[[#transport#-1][BGHWV2099][inet[/10.203.238.139:9300]],已从节点列表组织中删除。弹性搜索。运输ConnectTransportException:[[inet[/10.203.238.139:9300]]在组织上连接超时[30s]。弹性搜索。运输内蒂。网络运输。org上的connectToChannelsLight(NettyTransport.java:683)。弹性搜索。运输内蒂。网络运输。org上的connectToNode(NettyTransport.java:643)。弹性搜索。运输内蒂。网络运输。connectToNodeLight(NettyTransport.java:610)

请帮我找到问题。

谢啦

共有1个答案

周朗
2023-03-14

你的代码在我看来是正确的。如果这是一个间歇性问题,可以归因于:

  • 失去连接

也如上一篇文章所建议的,删除与节点相关的设置,并尝试设置下面提到的属性

settingsBuilder.put("cluster.name", searchClusterName);
settingsBuilder.put("client.transport.sniff", true);
settingsBuilder.put("http.enabled", "false");

尝试一下并分享你的发现

 类似资料:
  • 问题内容: 我的应用程序正在使用此脚本来增强索引中的最新项目: 它是用MVEL编写的,但是从1.3开始,对于Groovy,不推荐使用MVEL。脚本现在引发此错误: 对我来说,这听起来像Groovy中获取毫秒级时间戳的功能不同。我尝试了,但是又给出了另一个错误,说它不支持导入。 那么我该如何修复该功能以与Groovy一起使用? 问题答案: 正如您已经发现的那样,您需要用Groovy而不是MVEL重写

  • 问题内容: 请问一个简单的问题,我完全是Java和android开发人员的初学者。调用surfaceChanged时,如何在setCameraDisplayOrientation中获取Activity的实例? 问题答案: 这是一种使用静态变量避免内存泄漏的方法:静态引用将在onCreate(Bundle)方法中设置的Activity实例。 在您的中学班级中写下如下内容: 然后在Activity类的

  • 主要内容:1. ServletActionContext,2. ServletResponseAware,参考在Struts2中,可以用以下两种方式来获取HttpServletResponse对象。 1. ServletActionContext 通过 ServletActionContext 类来访问 HttpServletResponse 。 2. ServletResponseAware 通过实现 ServletResponseAware 接口并覆盖 setServletResponse(

  • 主要内容:1. ServletActionContext,2. ServletRequestAware,参考在Struts2中,可以使用以下两种方法来获取HttpServletRequest对象。 1. ServletActionContext 直接从 org.apache.struts2.ServletActionContext 获取 HttpServletRequest 对象。 2. ServletRequestAware 让你的类实现org.apache.struts2.intercept

  • 本文向大家介绍Android 获取时间实例代码,包括了Android 获取时间实例代码的使用技巧和注意事项,需要的朋友参考一下  Android 获取时间实例代码 注意: h:12小时制小时数 H:24小时制小时数 实例代码: 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

  • 创建mongoTemplate bean时出现以下错误。 我认为jar版本是冲突的。