疲劳是最舒适的枕头,努力工作吧。

Elasticsearch使用TransportClient索引数据时,服务器报错。java.io.IOException: 远程主机强迫关闭了一个现有的连接

Elasticsearch | 作者 maxzhaobing | 发布于2016年04月22日 | 阅读数:12757

Elasticsearch使用Client索引数据时,数据正常存储服务也不报错。
Elasticsearch使用TransportClient索引数据时,数据能够正常存储但是Elasticsearch 日志中报错:java.io.IOException: 远程主机强迫关闭了一个现有的连接
而且一下就报了14次。
有没有大神帮忙解决下
版本:Elasticsearch-1.7.5
代码:
import static org.elasticsearch.node.NodeBuilder.*;
import static org.elasticsearch.common.xcontent.XContentFactory.*;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.client.Client;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.ImmutableSettings;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.elasticsearch.node.Node;
 
Settings settings = ImmutableSettings.settingsBuilder()
  .put("client.transport.sniff", true)
  .build();
TransportClient client = new TransportClient(settings)
  .addTransportAddress(new InetSocketTransportAddress("localhost", 9300));
IndexResponse response = client.prepareIndex("twitter", "tweet", "5")
  .setSource(jsonBuilder()
    .startObject()
    .field("name", "ceshi5")
    .endObject()    
    )
  .execute()
  .actionGet();
boolean created = response.isCreated();
System.out.println(created);
 
 
 
已邀请:

suwensen - 如影随形

赞同来自:

如果一个连接查询的时候,超过50s,主机会自动给你断开连接。没有问题

maxzhaobing

赞同来自:

我知道了 我只是运行了一个main方法,结束的时候没有调用client.close();方法。然后程序自动关闭了。导致报了上面的那个错误。

sp42 - Java,Js

赞同来自:

我也是这样的情况,有时又不会,纠结……

zayne

赞同来自:

14次操作没有close

jasonluelastic

赞同来自:

有时候出现有时候不出现,一出现就连续出现好几次,到底是个什么情况啊

eric930721

赞同来自:

这种情况可能是访问es连接过多造成的,es自己的连接池管理不过来

要回复问题请先登录注册