• ไมโครเซอร์วิสแบบ 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

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น