您的位置:首页 > 其它

client.transport.sniff的使用方法

2015-09-21 18:43 162 查看
通过TransportClient这个接口,我们可以不启动节点就可以和es集群进行通信,它需要指定es集群中其中一台或多台机的ip地址和端口,例子如下:

Client client = new TransportClient()
.addTransportAddress(newInetSocketTransportAddress("host1", 9300))
.addTransportAddress(newInetSocketTransportAddress("host2", 9300));
client.close();


如果你需要更改集群名(默认是elasticsearch),需要如下设置:

Settings settings =ImmutableSettings.settingsBuilder()
.put("cluster.name","myClusterName").build();
Client client = newTransportClient(settings);


你可以设置client.transport.sniff为true来使客户端去嗅探整个集群的状态,把集群中其它机器的ip地址加到客户端中,这样做的好处是一般你不用手动设置集群里所有集群的ip到连接客户端,它会自动帮你添加,并且自动发现新加入集群的机器。代码实例如下:

Settings settings = ImmutableSettings.settingsBuilder()
.put("client.transport.sniff", true).build();
TransportClientclient = new TransportClient(settings);


注意:当ES服务器监听使用内网服务器IP而访问使用外网IP时,不要使用client.transport.sniff为true,在自动发现时会使用内网IP进行通信,导致无法连接到ES服务器,而直接使用addTransportAddress方法进行指定ES服务器。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: