Skip to main content
Điểm cuối getHealth được dùng để kiểm tra trạng thái hoạt động hiện tại của một nút RPC Solana. Một nút thường được coi là hoạt động tốt khi nó đang vận hành và được đồng bộ ở mức hợp lý với phần còn lại của cụm (cụ thể là nằm trong một khoảng cách slot nhất định so với slot mới nhất đã được cụm xác nhận, được gọi là HEALTH_CHECK_SLOT_DISTANCE). Điểm cuối này rất quan trọng trong việc giám sát tình trạng của nút, đặc biệt đối với các ứng dụng hoặc cơ sở hạ tầng phụ thuộc vào tính sẵn sàng và độ tin cậy của nút RPC.

Cách hoạt động

Phương thức getHealth sử dụng cơ chế POST JSON-RPC tiêu chuẩn với phương thức getHealth. Phương thức này kiểm tra xem nút RPC có hoạt động tốt và được đồng bộ với cụm Solana hay không.

Các trường hợp sử dụng phổ biến

  • Giám sát nút: Thường xuyên kiểm tra tình trạng của các nút RPC để đảm bảo chúng đang hoạt động và được đồng bộ.
  • Cân bằng tải: Dùng kiểm tra tình trạng để xác định xem một nút có nên nhận lưu lượng trong cấu hình cân bằng tải hay không.
  • Hệ thống chuyển đổi dự phòng: Kích hoạt chuyển đổi sang nút dự phòng nếu nút chính không còn hoạt động tốt.
  • Gỡ lỗi kết nối: Nhanh chóng xác định xem nút RPC có phản hồi hay không.

Tham số yêu cầu

Phương thức này không nhận bất kỳ tham số nào.

Cấu trúc phản hồi

  • Đối với POST JSON-RPC getHealth:
    • result: "ok" nếu nút hoạt động tốt.
    • Nếu nút không hoạt động tốt, phương thức có thể trả về một đối tượng lỗi hoặc các giá trị chuỗi khác (như "behind" hoặc "unknown"). Tuy nhiên, phản hồi lỗi chính xác cho một nút không hoạt động tốt có thể không ổn định hoặc khác nhau giữa các nhà cung cấp.

Ví dụ

1. Kiểm tra tình trạng nút bằng JSON-RPC (POST với cURL)

Phản hồi JSON-RPC dự kiến (đối với nút hoạt động tốt):

Mẹo dành cho nhà phát triển

  • Định nghĩa trạng thái hoạt động tốt: “Hoạt động tốt” thường có nghĩa là nút có phản hồi và không bị chậm quá xa so với trạng thái mới nhất của cụm. Chênh lệch slot chính xác (HEALTH_CHECK_SLOT_DISTANCE) có thể được cấu hình trên nút.
  • Diễn giải "behind" hoặc "unknown": Nếu nhận được "behind {distance}" hoặc "unknown", nút vẫn đang hoạt động nhưng có thể chưa đồng bộ hoàn toàn hoặc không thể xác định trạng thái của nó so với cụm. Tùy vào yêu cầu của ứng dụng, bạn có thể xử lý các trạng thái này theo những cách khác nhau.
  • Khác biệt giữa các nhà cung cấp: Hành vi chính xác cũng như mã hoặc nội dung phản hồi đối với một nút không hoạt động tốt có thể khác nhau đôi chút giữa các nhà cung cấp RPC.
  • Xử lý lỗi: Luôn triển khai cơ chế xử lý lỗi phù hợp khi gọi getHealth, vì sự cố mạng hoặc vấn đề ở nút có thể khiến yêu cầu thất bại hoàn toàn.
Hướng dẫn này cung cấp thông tin cần thiết để sử dụng điểm cuối getHealth nhằm giám sát trạng thái của một nút RPC Solana.