마이크로서비스의 상태 전달 - Spring Actuator

Jinsan Lee·2022년 7월 18일
0

클라우드 기반 마이크로 서비스에는 애플리케이션에서 실행 중인 서비스 인스턴스가 많고, 조만간 그 서비스 인스턴스 중 하나가 고장날 수 있다.

이러한 문제에 서비스 디스커버리 에이전트(ex. 넷플릭스 유레카)가 우리를 도와줄 수 있다.

서비스 디스커버리 에이전트는 등록된 각 서비스 인스턴스 상태를 모니터링한다.

또한 라우팅 테이블에서 실패한 서비스 인스턴스를 제거하여 클라이언트가 실패한 서비스 인스턴스와 통신하지 않도록 한다.

이때 우리는 스프링 액추에이터(Actuator)를 많이 이용하게 된다.

why?

1. 왜 Actuator를 사용하여 서비스 인스턴스의 상태를 체크할까?

REST를 사용하는 마이크로 서비스 환경에서 상태 확인 인터페이스를 만드는 가장 단순한 방법은 JSON 페이로드와 HTTP 상태 코드를 응답하는 HTTP 엔드포인트를 노출하는 것이다.

만약 프로젝트가 스프링 부트 기반이 아니라면 해당 처리 과정은 온전히 개발자의 몫이다.

그러나 스프링 부트에서는 엔드포인트를 노출하기가 어렵지 않으며 액추에이터 모듈을 빌드에 포함하기만 하면 된다.

스프링 액추에이터는 서비스 상태를 이해하고 관리할 수 있게 하며, 추가 설치 없이 바로 운영 가능한 엔드포인트를 제공한다.


  • 서비스 인스턴스의 상태 확인 엔드포인트를 사용한 결과

상태 확인은 서비스가 정상/비정상(UP/DOWN) 지표 외에 다른 정보도 포함 된다.

추가적인 설정을 작성하지 않았을 때에는 정상/비정상 정보만 표시되었는데 아래와 같은 설정을
application.properties에 작성하였더니 위와 같이 자세한 지표가 포함 되었다.

  • 스프링 액추에이터 관련하여 작성한 설정 코드

0개의 댓글