mongodb: ชุดจำลองที่มีตัวโหลดบาลานซ์


9

มีตัวเลือกสำหรับการปรับสมดุลโหลดด้วยชุดจำลอง mongodb หรือไม่? ฉันไม่ได้ขอ HAProxy หรือคล้ายกัน แต่สำหรับคุณลักษณะในตัวจาก mongodb ไม่พบเคล็ดลับสำหรับสิ่งนี้ในเอกสาร

คำตอบ:


11

หากคุณกำลังใช้การแบ่งส่วน "load balancer" เป็นกระบวนการ mongos - จริง ๆ แล้วมันเป็นเหมือนเราเตอร์ - มันเก็บสำเนาในหน่วยความจำของฐานข้อมูลการกำหนดค่าและสามารถตัดสินใจตามคีย์ shard

หากคุณหมายถึงการโหลดบาลานซ์ในชุดจำลองที่เหมือนกันหรือข้ามสมาชิกของชุดดังนั้นจะมีคำขอคุณลักษณะเพื่อให้ mongos จัดการกับสถานการณ์นั้นด้วย ( https://jira.mongodb.org/browse/SERVER-1594 ) วิธีที่ผู้ขับขี่ใช้งานมันไม่จำเป็นจริงๆ (มันจะทำให้ผู้ขับขี่มีความซับซ้อนน้อยลง)

ในชุดเรพพลิกาชุดเดียวคุณไม่สามารถกระจายการเขียนได้ทั้งหมดต้องไปที่ชุดหลัก คุณสามารถแจกจ่ายการอ่านไปยัง Secondaries ได้แล้วผ่านRead Preferencesตามที่คุณเห็นสมควร คนขับรถติดตามสิ่งที่เป็นหลักและสิ่งที่เป็นคำถามรองและเส้นทางที่เหมาะสม


2

'สมดุลภาระ' จะประสบความสำเร็จผ่านการแบ่งส่วน ด้วยการส่งเศษคุณจริง ๆ แล้วแจกจ่ายการเขียน / การปรับปรุงลงบนแต่ละเศษ ไม่มีอัลกอริทึมเฉพาะที่ทำสิ่งนี้ในขณะที่ Mongo จะให้คุณแบ่งพาร์ติชันข้อมูลตามชุดของคีย์ที่คุณต้องการ อัลกอริทึมพาร์ติชันที่ดีที่สุดคือสิ่งที่มีการรวมกันของรายการตามลำดับบวกหนึ่งแบบสุ่ม

ตัวอย่างเช่น ID ผู้ใช้สามารถแบ่งพาร์ติชันได้ดังนี้

xx-sha1(user email) 
xx = time sequence

ระวังการใช้การแบ่งส่วนคุณจำเป็นต้องมีเซิร์ฟเวอร์กำหนดค่าสามตัวและโหนดข้อมูล โหนดข้อมูลสามารถจัดกลุ่มเป็นชุดแบบจำลองเพื่อความซ้ำซ้อนและสามารถใช้ (เฉพาะในกรณีที่คุณทำได้) เพื่ออ่านข้อมูลจากบุคคลที่สอง ฉันพูดได้เฉพาะในกรณีที่คุณสามารถอ่านข้อมูลได้เนื่องจากการจำลองข้อมูลเสร็จสิ้นแบบอะซิงโครนัสดังนั้นจึงไม่รับประกันว่าข้อมูลใหม่จะพร้อมใช้งานในเวลาสืบค้นของบุคคลที่สอง

โปรดทราบว่าอัลกอริทึมพาร์ติชันขึ้นอยู่กับคุณทั้งหมดและควรเหมาะสมกับความต้องการของแอปพลิเคชันของคุณ นอกจากนี้คุณควรพิจารณาว่าคุณเพียงแค่ต้องการเขียนข้อมูลและมีเพียงอ่านเป็นครั้งคราวหรือคุณจำเป็นต้องอ่านมันหลังจากที่คุณเขียนมัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.