ในขณะที่ค้นคว้าสถาปัตยกรรมฐานข้อมูลต่างๆด้วย ฉันได้รวบรวมข้อมูลดีๆที่อาจเกี่ยวข้องกับคนอื่นที่กำลังค้นคว้าในอนาคต ฉันได้ข้ามผ่าน
- การจำลองแบบ Master-Slave
- การจำลองแบบ Master-Master
- MySQL คลัสเตอร์
ฉันตัดสินใจที่จะใช้ MySQL Cluster สำหรับกรณีการใช้งานของฉัน อย่างไรก็ตามโปรดดูข้อดีข้อเสียต่างๆที่ฉันได้รวบรวมไว้ด้านล่าง
1. การจำลองแบบ Master-Slave
ข้อดี
- แอปพลิเคชันการวิเคราะห์สามารถอ่านจากทาสโดยไม่ส่งผลกระทบต่อต้นแบบ
- การสำรองฐานข้อมูลทั้งหมดที่ไม่มีผลกระทบต่อหลัก
- ทาสสามารถออฟไลน์และซิงค์กลับไปที่มาสเตอร์โดยไม่ต้องหยุดทำงานใด ๆ
จุดด้อย
- ในกรณีของความล้มเหลวทาสจะต้องได้รับการเลื่อนตำแหน่งให้เป็นนายเพื่อเข้ามาแทนที่ ไม่มีการล้มเหลวอัตโนมัติ
- การหยุดทำงานและอาจสูญเสียข้อมูลเมื่อหลักล้มเหลว
- การเขียนทั้งหมดจะต้องทำต่อมาสเตอร์ด้วยการออกแบบมาสเตอร์ทาส
- ทาสเพิ่มเติมแต่ละตัวจะเพิ่มภาระบางส่วนให้กับมาสเตอร์เนื่องจากต้องอ่านบันทึกไบนารีและคัดลอกข้อมูลไปยังทาสแต่ละตัว
- อาจต้องรีสตาร์ทแอปพลิเคชัน
2. การจำลองแบบ Master-Master
ข้อดี
- แอปพลิเคชันสามารถอ่านได้จากผู้เชี่ยวชาญทั้งสอง
- กระจายโหลดการเขียนบนโหนดหลักทั้งสอง
- ล้มเหลวง่ายอัตโนมัติและรวดเร็ว
จุดด้อย
- สม่ำเสมออย่างหลวม ๆ
- ไม่ง่ายเหมือน master-slave ในการกำหนดค่าและปรับใช้
3. MySQL คลัสเตอร์
เด็กใหม่ในเมืองจากการออกแบบคลัสเตอร์ MySQL คลัสเตอร์ MySQL ได้รับการพัฒนาโดยคำนึงถึงความพร้อมใช้งานและความสามารถในการปรับขนาดได้สูงและเป็นโซลูชันที่เหมาะสำหรับใช้กับสภาพแวดล้อมที่ไม่ต้องมีการหยุดทำงานความสามารถในการใช้งานสูงและความยืดหยุ่นในแนวนอน
ดูMySQL Cluster 101สำหรับข้อมูลเพิ่มเติม
ข้อดี
- (High Avalability) ไม่มีจุดล้มเหลวแม้แต่จุดเดียว
- ปริมาณงานสูงมาก
- เวลาทำงาน 99.99%
- Auto-sharding
- การตอบสนองตามเวลาจริง
- การดำเนินการออนไลน์ (การเปลี่ยนแปลงสคีมา ฯลฯ )
- การเขียนแบบกระจาย
จุดด้อย
คุณสามารถเยี่ยมชมรายละเอียดทั้งหมดในบล็อกของฉันรวมถึงไดอะแกรมสถาปัตยกรรมที่มีรายละเอียดเพิ่มเติมเกี่ยวกับสถาปัตยกรรมที่กล่าวถึง 3 แบบ