client.transport.sniff的使用方法
2015-09-21 18:43
162 查看
通过TransportClient这个接口,我们可以不启动节点就可以和es集群进行通信,它需要指定es集群中其中一台或多台机的ip地址和端口,例子如下:
如果你需要更改集群名(默认是elasticsearch),需要如下设置:
你可以设置client.transport.sniff为true来使客户端去嗅探整个集群的状态,把集群中其它机器的ip地址加到客户端中,这样做的好处是一般你不用手动设置集群里所有集群的ip到连接客户端,它会自动帮你添加,并且自动发现新加入集群的机器。代码实例如下:
注意:当ES服务器监听使用内网服务器IP而访问使用外网IP时,不要使用client.transport.sniff为true,在自动发现时会使用内网IP进行通信,导致无法连接到ES服务器,而直接使用addTransportAddress方法进行指定ES服务器。
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服务器。
相关文章推荐
- JQuery动态增加删除元素
- 如何选书?
- vs2010中快捷键总结(1)
- java微云快速开发平台
- TCP的三次握手(建立连接)和四次挥手(关闭连接)
- 第三周实践项目3 -求集合并集
- 自定义安装MS Office Project2007会出错
- Sublime Text2的安装注册+汉化+安装插件+乱码解决
- windows下搭建python cgi编程环境
- UVa 10118:Free Candies(DP)
- 自定义安装MS Office Project2007会出错
- 内核升极2.6.18 升级到 2.6.32 装systemtap 原创
- 编程实验一 词法分析程序
- [LeetCode] Peeking Iterator
- openstack 上床镜像, 创建网络, 创建虚拟机 命令
- 工程师,请把你的英语磨锐
- bash编程:Shell练习题
- Android自动化测试之虚拟机中软件安装方法(四)
- 0921 词法分析程序
- 面试中对于排序操作的考察