- ไมโครเซอร์วิสแบบ sidecar ที่ออกแบบมาเพื่อ ตรวจจับสถานะของคลัสเตอร์ PostgreSQL แบบเรียลไทม์
- ตรวจสอบได้ทันทีว่าโฮสต์ ยังทำงานอยู่หรือไม่, เป็น master/replica, และมี ความหน่วงของ replica เท่าใด
- โครงสร้างที่เบาและประสิทธิภาพสูง: ใช้หน่วยความจำประมาณ 9MiB และมี ภาระ CPU ต่ำ ต่อคำขอ รองรับได้สูงสุด 9000 คำขอต่อวินาที
- ข้อมูลทั้งหมดให้บริการแบบ ตอบสนองจากหน่วยความจำ เพื่อลดความหน่วงของคำขอให้น้อยที่สุด
- มีการ polling สถานะโฮสต์ PostgreSQL เป็นระยะในเบื้องหลัง และเปิดเผยผลลัพธ์ผ่าน HTTP API (รองรับ Plain/JSON)
- API endpoint หลัก
/master: ส่งคืนโฮสต์ master ปัจจุบัน
/replica: ส่งคืน replica ที่เลือกด้วย อัลกอริทึม round-robin
/sync_by_time, /sync_by_bytes: ส่งคืน replica ตามสถานะการซิงก์ ตามเวลา หรือ ตามจำนวนไบต์
/hosts: รายการสถานะของโฮสต์ทั้งหมด (JSON)
/status: ดูสถานะโดยละเอียดของโฮสต์ที่ระบุ
- การตั้งค่าผ่านตัวแปรสภาพแวดล้อม: ควบคุมรายละเอียดได้ เช่น connection timeout, ขีดจำกัดความหน่วงที่ยอมรับได้, รอบการ polling
- ออกแบบแบบ lock-free ด้วยโครงสร้าง single writer และ reader หลายตัว เพื่อให้ตอบสนองการอ่านได้รวดเร็วและคงข้อมูลล่าสุดไว้
- ยอมรับความเป็นไปได้ของข้อมูลไม่สอดคล้องกันชั่วคราวเพื่อ เพิ่มประสิทธิภาพความเร็วในการตอบสนอง
- บันทึกเหตุการณ์เริ่มต้น/สิ้นสุดบริการและการเปลี่ยนแปลงสถานะไปยัง stdout/stderr พร้อมแสดง failover, การกู้คืน, การเปลี่ยนแปลงสถานะการซิงก์ แบบเรียลไทม์
- สามารถจำลอง สถานการณ์สลับ master-replica ได้ด้วย proxy
ยังไม่มีความคิดเห็น