java中RestHighLevelClient 获取端口配置等基本信息
示例代码:
@CrossOrigin(origins = "*", maxAge = 3600)
@RequestMapping(value = {"/v1/es_info"}, method = {POST})
public ResponseEntity<String> queryESInfo(@RequestBody QueryAlarmRequestInfo body)
throws Exception {
StringBuilder s = new StringBuilder();
try {
RestHighLevelClient client = ElasticSearchUtil.getElasticsearchRestClient().rest();
MainResponse response = client.info(RequestOptions.DEFAULT);
String esVersion = response.getVersion().getNumber();
s.append("Elasticsearch Version: " + esVersion + "\n");
// 打印 Elasticsearch 版本和其他信息
String clusterName = response.getClusterName().toString();
String nodeName = response.getNodeName();
s.append("Cluster name: " + clusterName + "\n");
s.append("Node name: " + nodeName + "\n");
// 从RestHighLevelClient获取RestClient
RestClient restClient = client.getLowLevelClient();
// 获取已配置的HttpHost信息
HttpHost[] hosts = restClient.getNodes().stream()
.map(node -> node.getHost())
.toArray(HttpHost[]::new);
// 打印每个HttpHost的信息
for (HttpHost host : hosts) {
s.append("Host: " + host.getHostName() + "\n");
s.append("Port: " + host.getPort() + "\n");
s.append("Scheme: " + host.getSchemeName() + "\n");
}
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException();
}
return ResponseModel.success(s.toString());
}

浙公网安备 33010602011771号