getHealth se usa para comprobar el estado actual de un nodo RPC de Solana. Por lo general, un nodo se considera saludable si está operativo y razonablemente sincronizado con el resto del clúster (específicamente, si se encuentra dentro de una distancia determinada de slots respecto al último slot confirmado del clúster, conocida como HEALTH_CHECK_SLOT_DISTANCE).
Este endpoint es crucial para monitorear el estado de los nodos, especialmente en aplicaciones o infraestructuras que dependen de la disponibilidad y confiabilidad de un nodo RPC.
Cómo funciona
El métodogetHealth usa el mecanismo POST estándar de JSON-RPC con el método getHealth. Este método comprueba si el nodo RPC está saludable y sincronizado con el clúster de Solana.
Casos de uso comunes
- Monitoreo de nodos: Comprueba periódicamente el estado de los nodos RPC para asegurarte de que estén operativos y sincronizados.
- Balanceo de carga: Usa comprobaciones de estado para determinar si un nodo debe recibir tráfico en una configuración con balanceo de carga.
- Sistemas de conmutación por error: Activa la conmutación a un nodo de respaldo si un nodo principal deja de estar saludable.
- Depuración de conectividad: Determina rápidamente si un nodo RPC responde.
Parámetros de solicitud
Este método no recibe ningún parámetro.Estructura de la respuesta
- Para una solicitud POST de JSON-RPC
getHealth:result:"ok"si el nodo está saludable.- Si el nodo no está saludable, puede devolver un objeto de error u otros valores de cadena (como
"behind"o"unknown"), aunque la respuesta de error exacta puede ser inestable o variar entre proveedores.
Ejemplos
1. Comprobar el estado del nodo mediante JSON-RPC (POST con cURL)
Consejos para desarrolladores
- Definición de saludable: Por lo general, «saludable» significa que el nodo responde y no está demasiado retrasado respecto a la punta del clúster. La diferencia exacta de slots (
HEALTH_CHECK_SLOT_DISTANCE) puede configurarse en el nodo. - Interpretación de
"behind"o"unknown": Si recibes"behind {distance}"o"unknown", el nodo está operativo, pero es posible que no esté completamente actualizado o que no pueda determinar su estado con respecto al clúster. Según los requisitos de tu aplicación, puedes tratar estos estados de manera diferente. - Diferencias entre proveedores: El comportamiento exacto y los códigos o cuerpos de respuesta de un nodo que no está saludable pueden variar ligeramente entre proveedores de RPC.
- Manejo de errores: Implementa siempre un manejo de errores adecuado al llamar a
getHealth, ya que los problemas de red o del nodo pueden hacer que la solicitud falle por completo.
getHealth a fin de monitorear el estado de un nodo RPC de Solana.