您的位置:首页 > 编程语言 > Java开发

elastisearch之java api Transportclient创建连接

2017-07-19 23:47 344 查看
ElasticSearch提供了NodeClient,Transport方式。

NodeClient这种方式相当于创建了一个节点,放入集群中,这个节点不存储数据,并且不能作为主节点,因为是一个节点,它知道整个集群的状态(每个节点在哪,哪些分片在哪个节点上等),这意味着它执行API时不会出现”连跳”。

TransportClient不创建节点,它存在于集群外部,类似于REST客户端,只是充当ES集群和你的应用的通信层,它知道API,并且能够在节点间自动轮循、帮你嗅探集群等。

Transport方式的好处是:

性能更高
本地资源消耗更少
内置连接池


当然也有缺点

当初始化连接时,ElasticSearch必须已启动,且必须知道集群中一个节点的IP地址和端口;
可能存在"连跳",浪费一定的网络资源


如果应用的是java语言,一般通过Transport优于node

elasticsearch1.7版本的TransportClient

Settings settings = ImmutableSettings.settingsBuilder().put("自己的配置","同前").build();
TransportClient esclient = new TransportClient(settings);
esclient.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("自己的ip"), 应用的端口号));


elasticsearch 5.*版本的TransportClient

Settings  settings=Settings.builder().put("自己的配置","同前").build();
TransportClient client=null;
try {
client= new PreBuiltTransportClient(settings) .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(("自己的ip"), 应用的端口号));
}catch(Exception e){
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java elasticsearch