getHealth используется для проверки текущего состояния узла Solana RPC. Узел обычно считается исправным, если он работает и достаточно хорошо синхронизирован с остальной частью кластера (в частности, если он находится на определенном расстоянии в слотах от последнего подтвержденного слота кластера, известном как HEALTH_CHECK_SLOT_DISTANCE).
Эта конечная точка необходима для мониторинга состояния узлов, особенно для приложений или инфраструктуры, которые зависят от доступности и надежности узла RPC.
Как это работает
МетодgetHealth использует стандартный механизм POST-запросов JSON-RPC с методом getHealth. Этот метод проверяет, исправен ли узел RPC и синхронизирован ли он с кластером Solana.
Распространенные сценарии использования
- Мониторинг узлов: Регулярно проверяйте состояние узлов RPC, чтобы убедиться, что они работают и синхронизированы.
- Балансировка нагрузки: Используйте проверки состояния, чтобы определить, следует ли направлять трафик на узел в конфигурации с балансировкой нагрузки.
- Системы аварийного переключения: Запускайте переключение на резервный узел, если основной узел перестает быть исправным.
- Диагностика подключения: Быстро проверяйте, отвечает ли узел RPC.
Параметры запроса
Этот метод не принимает параметров.Структура ответа
- Для POST-запроса JSON-RPC
getHealth:result:"ok", если узел исправен.- Если узел неисправен, может возвращаться объект ошибки или другие строковые значения (например,
"behind"или"unknown"), однако точный ответ об ошибке для неисправного узла может быть нестабильным или различаться у разных провайдеров.
Примеры
1. Проверка состояния узла с помощью JSON-RPC (POST-запрос через cURL)
Рекомендации для разработчиков
- Определение исправного состояния: «Исправный» обычно означает, что узел отвечает и не слишком сильно отстает от актуального состояния кластера. Точную разницу в слотах (
HEALTH_CHECK_SLOT_DISTANCE) можно настроить на узле. - Интерпретация
"behind"или"unknown": Если вы получили"behind {distance}"или"unknown", узел работает, но может быть не полностью синхронизирован или не способен определить свое состояние относительно кластера. В зависимости от требований вашего приложения вы можете обрабатывать эти состояния по-разному. - Различия между провайдерами: Точное поведение, коды и тела ответов для неисправного узла могут немного различаться у разных провайдеров RPC.
- Обработка ошибок: Всегда реализуйте надлежащую обработку ошибок при вызове
getHealth, поскольку проблемы с сетью или узлом могут привести к полному сбою запроса.
getHealth для мониторинга состояния узла Solana RPC.