1. 程式人生 > >Elasticsearch Java API 配置測試

Elasticsearch Java API 配置測試

int tcl 等待時間 class ket sni ted earch sample

Elasticsearch1.X,2.X,5.X隨著版本的叠代,除了系統升級,Java API也做了相對較大的調整,也就是說,1.X的API在2.X以及5.X乃至未來6.X版本都不是通用的。

本例子使用的版本是5.6.5

一. 首先添加maven依賴

        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>transport</artifactId>
            <version
>5.6.5</version> </dependency>

二。連接方式

Settings settings = Settings.builder().put("cluster.name", "my-application").build();  //設置集群名稱
TransportClient client = new PreBuiltTransportClient(settings).addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("10.10.10.5"), 9300));

輸客戶端自帶一個集群嗅探特性,可以動態地添加新主機並刪除舊主機,當啟用這個特性時,傳輸客戶端將連接到其內部節點列表中的節點

嗅探器開啟方式:
Settings settings = Settings.builder() .put("client.transport.sniff", true).build();
TransportClient client = new PreBuiltTransportClient(settings);

其他transport client的設置包括:
client.transport.ignore_cluster_name :設置為true 可以忽略節點連接時對集群名字的校驗
client.transport.ping_timeout :設置一個節點在得到response時的等待時間,默認5秒
client.transport.nodes_sampler_interval:多久進行獲取/ping 列出的節點並且連接,默認5秒

三。查看集群信息

        List<DiscoveryNode> nodes = client.connectedNodes();
        for (DiscoveryNode node : nodes) {
            System.out.println(node.getHostAddress());
            System.out.println(node.getName());
            System.out.println(node.getVersion());
        }

Elasticsearch Java API 配置測試