Transport Clientedit
的 TransportClient
远程连接到一个Elasticsearch集群使用传输模块。它不加入集群,只是被一个或多个初始运输地址和与他们以循环赛的方式在每个行动(尽管大多数操作可能会“两跳”操作)。
// on startup
Client client = TransportClient.builder().build()
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host1"), 9300))
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host2"), 9300));
// on shutdown
client.close();
请注意,您必须设置集群名称比“elasticsearch”:如果你使用一个不同的
Settings settings = Settings.settingsBuilder()
.put("cluster.name", "myClusterName").build();
Client client = TransportClient.builder().settings(settings).build();
//Add transport addresses and do something with the client...
传输客户端有一个集群嗅探功能,允许它动态地添加新的主机和删除旧的。当嗅启用传输客户端将连接到节点的内部节点列表中,通过调用addTransportAddress构建。在这之后,客户机将调用内部集群状态API在这些节点发现可用的数据节点上。客户端将被替换的内部节点列表中与数据节点。这个列表默认每5秒刷新。注意,IP地址嗅探器连接的宣布的 发布在这些节点的地址elasticsearch配置。
记住列表可能不包括原始节点连接到如果节点不是一个数据节点。例如,如果您一开始连接到主节点,闻没有进一步的请求后,将主节点,而是任何数据节点。运输不包括数据节点的原因是为了避免搜索流量只主节点。
为了使嗅探,集 client.transport.sniff
来 true
:
Settings settings = Settings.settingsBuilder()
.put("client.transport.sniff", true).build();
TransportClient client = TransportClient.builder().settings(settings).build();
其他运输客户级别设置包括:
参数 | 描述 |
---|---|
| 设置为 |
| 时间等待一个平响应从一个节点。默认为 |
| 多长时间样本/ ping列出的节点和连接。默认为 |