Elasticsearch java API (5)Transport Client

来源:互联网 发布:九鼎下落知乎 编辑:程序博客网 时间:2024/04/19 19:35

Transport Clientedit

  • Java API: 
  • Preface
  • Maven Repository
  • Dealing with JAR dependency conflicts
  • Embedding jar with dependencies
  • Deploying in JBoss EAP6 module
  • Client
    • Transport Client
    • Connecting a Client to a Client Node
  • Document APIs
  • Search API
  • Count API
  • Aggregations
  • Percolate API
  • Query DSL
  • Indexed Scripts API
  • Java API Administration

 TransportClient远程连接到一个Elasticsearch集群使用传输模块。它不加入集群,只是被一个或多个初始运输地址和与他们以循环赛的方式在每个行动(尽管大多数操作可能会“两跳”操作)。

// on startupClient client = TransportClient.builder().build()        .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host1"), 9300))        .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host2"), 9300));// on shutdownclient.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();

其他运输客户级别设置包括:

参数描述

client.transport.ignore_cluster_name

设置为 true忽略集群名称验证连接的节点。(因为0.19.4)

client.transport.ping_timeout

时间等待一个平响应从一个节点。默认为 5s.

client.transport.nodes_sampler_interval

多长时间样本/ ping列出的节点和连接。默认为 5s.



1 0
原创粉丝点击