getHealth 엔드포인트는 Solana RPC 노드의 현재 상태를 확인하는 데 사용됩니다. 정상적인 노드는 일반적으로 작동 중이며 클러스터의 나머지 부분과 적절히 동기화된 것으로 간주됩니다 (특히 최신 클러스터 확인 슬롯과 특정 슬롯 거리 이내인 경우 HEALTH_CHECK_SLOT_DISTANCE).
이 엔드포인트는 특히 RPC 노드의 가용성과 신뢰성에 의존하는 애플리케이션이나 인프라에서 노드 상태를 모니터링하는 데 중요합니다.
작동 원리
getHealth 메소드는 표준 JSON-RPC POST 메커니즘을 사용하여 getHealth 메소드를 사용합니다. 이 메소드는 RPC 노드가 건강하고 Solana 클러스터와 동기화된 상태인지 확인합니다.
일반적인 사용 사례
- 노드 모니터링: RPC 노드의 건강 상태를 정기적으로 확인하여 작동 및 동기화를 보장합니다.
- 부하 분산: 부하 분산 설정에서 노드가 트래픽을 받아야 하는지 여부를 결정하는 데 건강 검사를 사용합니다.
- 페일오버 시스템: 주요 노드가 건강하지 않은 경우 백업 노드로 페일오버를 트리거합니다.
- 연결 문제 디버깅: RPC 노드가 응답 가능한지 빠르게 확인합니다.
요청 매개변수
이 메소드는 매개변수를 필요로 하지 않습니다.응답 구조
- JSON-RPC
getHealthPOST의 경우:result: 노드가 정상일 경우"ok"을 반환합니다.- 건강하지 않은 경우, 오류 객체나 다른 문자열 값(
"behind"또는"unknown"등)을 반환할 수 있지만, 건강하지 않은 노드의 정확한 오류 응답은 불안정하거나 제공자 간에 다를 수 있습니다.
예시
1. JSON-RPC를 사용하여 노드 상태 확인 (cURL로 POST)
개발자 팁
- 건강의 정의: “정상”이란 일반적으로 노드가 응답 가능하고 클러스터 팁에서 크게 뒤처지지 않는 것을 의미합니다. 정확한 슬롯 차이(
HEALTH_CHECK_SLOT_DISTANCE)는 노드에서 구성할 수 있습니다. "behind"또는"unknown"해석:"behind {distance}"또는"unknown"을 받으면 노드는 작동 중이지만 완료되지 않거나 클러스터와의 상태를 확인할 수 없을 수 있습니다. 애플리케이션 요구사항에 따라 이러한 상태를 다르게 처리할 수 있습니다.- 제공자 차이: 건강하지 않은 노드에 대한 정확한 동작 및 응답 코드/본문은 RPC 제공자 간에 약간 다를 수 있습니다.
- 오류 처리: 네트워크 문제나 노드 문제로 인해 요청이 완전히 실패할 수 있으므로
getHealth호출 시 항상 올바른 오류 처리를 구현하십시오.
getHealth 엔드포인트를 사용하는 데 필요한 정보를 제공합니다.