嵌入式节点的名称

时间:2013-11-11 18:38:14

标签: java elasticsearch

我有一个Java应用程序,我使用嵌入式Elasticsearch连接到Elasticsearch集群作为客户端(只读)节点。我没有在elastiscsearch.yml文件中设置node.name属性。是否有可能获得Elasticsearch随机分配给该节点的名称?我希望通过Java API获取此信息,以便我的应用程序可以在状态屏幕上显示节点名称。

1 个答案:

答案 0 :(得分:4)

如果你有一个实例化的org.elasticsearch.node.Node

,我认为你可以这样做

node.settings().get("name");

您也可以从群集管理员的nodeStats调用中获取它。这将反映您从node / stats REST api获得的结果,如下所示:

ActionFuture<NodesStatsResponse> nsr = client().admin().cluster().nodesStats(new NodesStatsRequest());
System.out.println(nsr.get().toString());

```

{
  "cluster_name" : "unitTest",
  "nodes" : {
    "1" : {
      "timestamp" : 1384212017873,
      "name" : "Naga",
      "transport_address" : "local[1]",
      "hostname" : "marks-Latitude-E6510",
      "attributes" : {
        "http.enabled" : "false",
        "local" : "true"
      },
      "indices" : {
         .... blah blah blah
      }
    }
  }
}

```