1. 程式人生 > >Elasticsearch java API (5)Transport Client

Elasticsearch java API (5)Transport Client

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();

其他運輸客戶級別設定包括:

引數 描述

client.transport.ignore_cluster_name

設定為 true忽略叢集名稱驗證連線的節點。(因為0.19.4)

client.transport.ping_timeout

時間等待一個平響應從一個節點。預設為 5s.

client.transport.nodes_sampler_interval

多長時間樣本/ ping列出的節點和連線。預設為 5s.