elasticsearch7.x lowLevelClient的使用, 获取es的集群监控状态

执行 elasticsearch 的 api

直接执行 elastic 的 api 在 RestHighLevelClient 是无法直接执行的,所以需要从 RestHighLevelClient 获取 RestClient 并执行操作

Request request = new Request(
    "GET",  
    "/");   
Response response = restClient.performRequest(request);

获取 response 的结果

执行后,需要获取结果,一般只需要知道是否正确执行,但是有时候还是需要得到方法体,比如获取集群监控状态,则需要获取方法体

Response response = restClient.performRequest(new Request("GET", "/"));
RequestLine requestLine = response.getRequestLine(); 
HttpHost host = response.getHost(); 
int statusCode = response.getStatusLine().getStatusCode(); 
Header[] headers = response.getHeaders(); 
//获取方法体
String responseBody = EntityUtils.toString(response.getEntity()); 

例如,查看es集群健康状态

//先注入@Autowired private RestHighLevelClient restHighLevelClient;

RestClient lowLevelClient = restHighLevelClient.getLowLevelClient();

Request scriptRequest = new Request("GET", "/_cluster/health?pretty");

Response response = lowLevelClient.performRequest(scriptRequest);

//获取 es集群健康状态 的json
String responseBody = EntityUtils.toString(response.getEntity());

异步执行 elasticsearch 的 api

Request request = new Request(
    "GET",  
    "/");   
Cancellable cancellable = restClient.performRequestAsync(request,
    new ResponseListener() {
    
    
        @Override
        public void onSuccess(Response response) {
    
    
            
        }

        @Override
        public void onFailure(Exception exception) {
    
    
            
        }
});

猜你喜欢

转载自blog.csdn.net/qq_34168515/article/details/112242215
今日推荐