티스토리 뷰

반응형

elasticsearch 의 연결가능성만 체크하고 싶은데, "Java High Level REST" 의 의존성은 너무 많기도 하고 번거로움이 많아서 RESTAPI 를 직접 사용해서 연결가능성만 체크하는 로직을 만들어 보았다. 구글링해보면 이거저거 나오긴 하는데 user, password 처리하는 샘플은 잘 나오지 않아서 좀 헤맸던거 같다.

 

RestTemplate 로 직접 health 체크 요청하기

ElasticSearch는 대부분 restapi 를 제공하고 있고, http://127.0.0.1:9300/_cat/health?v 형태로 상태를 조회가능하다.

가장 쉬운건 이 주소로 요청했을때 정상적으로 리턴이 되는지 체크하면 연결가능여부를 판단할 수 있다.

Spring 을 사용중이라면, RestTemplate 이라는 매우 좋은 도구가 있으니 이걸 이용하면 덜(?) 번거롭게 코드를 만들수 있다.

import org.springframework.http.*;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;

public class SampleCode {
    public boolean esCheck(String baseUrl, String user, String password) {
        final SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
        factory.setConnectTimeout(1000);
        factory.setReadTimeout(5000);
        
        final RestTemplate template = new RestTemplate(factory);
        
        final HttpHeaders headers = new HttpHeaders();
        if (user!=null && password!=null) {
            headers.setBasicAuth(user, password);
        }
        
        try {
            ResponseEntity<String> result = template.exchange(baseUrl + "/_cat/health?v",
                    HttpMethod.GET, new HttpEntity(null, headers), String.class);
            return result.getStatusCode() == HttpStatus.OK;
        } catch (Exception e) {
            return false;
        }
    }
}

물론 인덱스의 데이터를 조회하거나 좀더 다양한 코드를 개발해야 한다면, 랩핑된 API 를 써야겠지만... 나처럼 몇개만 쓴다면 기냥 RESTAPI 를 직접 호출해서 사용하는게 더 편할수도 있다.

https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/java-rest-high.html

 

Java High Level REST Client | Java REST Client [7.17] | Elastic

Deprecated in 7.15.0. The High Level REST Client is deprecated in favour of the Java API Client. The Java High Level REST Client works on top of the Java Low Level REST client. Its main goal is to expose API specific methods, that accept request objects as

www.elastic.co

 

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함