
elasticsearch for java【教程一Client】
发布日期:2021-05-07 04:26:42
浏览次数:23
分类:精选文章
本文共 1695 字,大约阅读时间需要 5 分钟。
环境
虚拟机:centos7
操作系统:win7 elasticsearch:5.4.3Transport Client 传输客户端
TransportClient
使用传输模块远程连接到elasticsearch
集群。它不会加入集群,而是简单的获取一个或多个初始传输地址,并且以循环的方式与每个动作进行通信。(尽管大多数操作可能是two hop
操作)。
// on startupTransportClient client = new PreBuiltTransportClient(Settings.EMPTY) .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host1"), 9300)) .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host2"), 9300));// on shutdownclient.close();
注意如果你设置了集群的名称,那么你必须设置它
Settings settings = Settings.builder().put("cluster.name", "yutao").build(); TransportClient client = new PreBuiltTransportClient(settings); client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("192.168.116.19"), 9300)) .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("192.168.116.19"), 9301));
Transport client
配置集群嗅探功能,其允许动态添加新主机和删除旧主机。
addTransportAddress
构建的。之后,客户端将调用这些节点上的内部集群状态API
来发现可用的数据节点。客户端的内部节点列表将仅替换为这些数据节点。该列表默认是每5秒刷新一次。注意:嗅探器连接的IP
地址是那些在节点elasticsearch
配置中声明为公开的地址。 请记住,如果该节点不是数据节点,则该列表可能不包括其连接的原始节点。
例如:如果你最初连接到主节点,则嗅探后,不会再向该主节点提供进一步的请求,而是替换为任意数据节点。传输客户端排除非数据节点的原因是避免将搜索流量发送到仅主节点。为了开启嗅探,设置client.transport.sniff
为true
:
Settings settings = Settings.builder() .put("client.transport.sniff", true).build();TransportClient client = new PreBuiltTransportClient(settings);
其他传输客户端层次设置:
参数 | 描述 |
---|---|
client.transport.ignore_cluster_name | 设置true,连接集群时,忽略验证集群名 |
client.transport.ping_timeout | 等待来自节点的ping响应的时间。默认5秒 |
client.transport.nodes_sampler_interval | 多长时间采样/ ping列出和连接的节点。默认为5秒。 |
将客户端连接到仅协调节点
你可以在本地启动一个协调节点,然后在你的应用程序中创建一个连接到此协调节点。
这样,只有协调的节点才能加载任何你需要的插件。(例如,考虑发现插件)
参考链接: