- Vi dịch vụ kiểu sidecar được thiết kế để phát hiện trạng thái của cụm PostgreSQL theo thời gian thực
- Có thể kiểm tra ngay host còn sống hay không, phân biệt master/replica, và độ trễ của replica
- Kiến trúc nhẹ, hiệu năng cao: dùng khoảng 9MiB bộ nhớ, tải CPU thấp trên mỗi yêu cầu, xử lý tối đa 9000 yêu cầu mỗi giây
- Mọi dữ liệu đều được cung cấp bằng phản hồi dựa trên bộ nhớ, giúp giảm thiểu độ trễ yêu cầu
- Định kỳ polling trạng thái host PostgreSQL ở nền, và công bố kết quả qua HTTP API (phản hồi Plain/JSON)
- Các endpoint API chính
/master: trả về host master hiện tại
/replica: trả về replica được chọn bằng thuật toán round-robin
/sync_by_time, /sync_by_bytes: trả về replica theo trạng thái đồng bộ theo thời gian hoặc theo byte
/hosts: danh sách trạng thái của tất cả host (JSON)
/status: xem trạng thái chi tiết của một host cụ thể
- Cấu hình dựa trên biến môi trường: có thể điều khiển chi tiết như timeout kết nối, giới hạn độ trễ cho phép, chu kỳ polling
- Thiết kế lock-free với một writer và nhiều reader giúp phản hồi đọc nhanh và duy trì dữ liệu mới nhất
- Chấp nhận khả năng không nhất quán dữ liệu tạm thời để tối ưu tốc độ phản hồi
- Ghi lại các sự kiện khởi động/kết thúc dịch vụ và thay đổi trạng thái vào stdout/stderr, đồng thời hiển thị theo thời gian thực failover, phục hồi, thay đổi trạng thái đồng bộ
- Có thể mô phỏng kịch bản chuyển đổi master-replica dựa trên proxy
Chưa có bình luận nào.