ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [지식] Heartbeat / Healthcheck의 차이
    알아두면 유용한 지식 2024. 5. 21. 12:15

    개요

    개발을 하다가 HeartbeatHealthcheck에 차이에 대해 궁금하여 찾아보게 되었습니다.

    저는 HeartbeatHealthcheck가 가지고 있는 목적성은 서로 비슷하다고 생각하고 있었는데 과연 그러한지 확인해봅시다!

     

    Heartbeat

    우선, Heartbeat에 대해 알아봅시다. 직역하면 심.장.박.동입니다. 2PM의 Heartbeat부터 생각나는 저란 놈은...ㅎ

     

    말 그대로 시스템이나 애플리케이션이 정상적으로 작동하고 있는지 확인하기 위해 주기적으로 신호를 보내는 메커니즘입니다.

    주로 클러스터 환경에서 노드 간의 상태를 확인합니다. 또는 분산 시스템에서 각 구성 요소의 가용성을 모니터링하기 위해 사용합니다.

    즉, 노드 간의 상태를 확인하는 것이라고 정의할 수 있습니다.

    분산 시스템이란? https://aws.amazon.com/ko/what-is/distributed-computing/

     

    동작 방식

    신호를 짧은 주기로 다른 시스템으로 보냅니다. 그로인해 대상 시스템이 살아있는지 확인합니다.

    만약, 대상 시스템으로부터 응답이 없다면 그 시스템이 다운되었거나 네트워크에 문제가 발생한 것입니다.


    Healthcheck

     

    애플리케이션이나 서비스의 구체적인 상태를 확인하여 기능이 정상적으로 작동하고 있는지 확인하는 것입니다.

    서비스의 가용성뿐만 아니라 성능, 응답 시간, 리소스 사용량 등을 모니터링합니다.

     

    동작 방식

    서비스의 특정 엔드포인트에 주기적으로 요청을 보냅니다. 그리고 응답 상태와 내용을 확인합니다.

    만약 응답이 기대한 것과 다르면 서비스가 비정상적인 상태라고 볼 수 있습니다.


    정리

    Heartbeat

    1. 목적
      • 시스템 또는 노드가 살아있는지 단순 확인
      • 주로 클러스터 환경에서 노드 간의 상태를 모니터링하기 위해 사용
    2. 특징
      • 주기적인 신호를 보내어 대상 시스템의 생존 여부를 확인
      • 응답이 없을 경우 대상 시스템이 다운되었거나 네트워크 문제가 있음을 의미

     

    Healthcheck

    1. 목적
      • 시스템 또는 애플리케이션의 구체적인 상태와 기능적인 건강 상태를 확인
      • 서비스의 가용성, 성능, 리소스 사용량 등을 모니터링
    2. 특징
      • 특정 엔드포인트에 주기적인 HTTP 요청을 통해 상태를 점검
      • 응답이 없을 경우 대상 시스템이 다운되었거나 네트워크 문제가 있음을 의미

     

    즉, 상대방을 상태를 확인하는 것은 동일하지만 쓰임새와 구체적인 목적성이 서로 다릅니다.

    의미론적으로는 Heartbeat단순한 상태 확인인 반면 Healthcheck구체적인 상태 점검입니다.

     

    그 동안 웹 개발자인 클라이언트에서 보내는 주기적인 HTTP 요청이 Heartbeat인지, Healthcheck인지 제대로 확인도 안하고 그저 상태를 확인하는구나... 라고 인지만 하고 있었는데, 이번 기회를 통해 Healthcheck였음을 알게되었습니다. ㅎㅎ

     

     

    끗!

    728x90
    반응형
Designed by Tistory.