วิเคราะห์การกระจายกลุ่มโหลดบาลานเซอร์

จำลองว่าอัลกอริทึมโหลดบาลานซ์ที่แตกต่างกันกระจายทราฟฟิกไปยังสมาชิกในกลุ่มอย่างไร จำลองสถานการณ์ความล้มเหลวและเปรียบเทียบประสิทธิภาพการกระจายใหม่

ปริมาณทราฟฟิก
สมาชิกกลุ่ม
การจำลองสถานการณ์ความล้มเหลว
วิธีทำงาน: IP ของไคลเอนต์ถูกสุ่มจาก subnet /16 (10.0.0.0/16) สำหรับการแฮชตามแหล่งที่มา แต่ละ IP ของไคลเอนต์ที่ไม่ซ้ำกันจะถูกแมปไปยังสมาชิกอย่างกำหนด Round robin ละเลย IP ของไคลเอนต์และกระจายแบบลำดับ น้ำหนักใช้การกำหนดแบบสุ่มตามสัดส่วน Consistent hashing วางทั้งไคลเอนต์และสมาชิกบนวงแหวนเสมือน

สมาชิกกลุ่ม

ID IP:Port น้ำหนัก สถานะ การดำเนินการ

ผลลัพธ์การกระจาย

การกระจายเซสชันต่อสมาชิก

การวิเคราะห์การกระจายใหม่เมื่อเกิดความล้มเหลว

Consistent Hash Ring

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

ข้อมูลอ้างอิงอัลกอริทึม

Round Robin
เซสชันจะถูกกำหนดแบบลำดับ: สมาชิก 1, 2, 3, ..., N, 1, 2, ... สมาชิกแต่ละราย จะได้รับคำขอทั้งหมดเท่ากับ 1/N ละเลยความจุของเซิร์ฟเวอร์และความผูกพันของไคลเอนต์ เรียบง่ายและคาดเดาได้ แต่ทำงานได้ไม่ดีกับฮาร์ดแวร์ที่แตกต่างกัน
Source IP Hash
การแฮชของ IP ไคลเอนต์แบบ modulo ด้วยจำนวนสมาชิกจะเลือกแบ็กเอนด์ ไคลเอนต์รายเดิม จะเข้าถึงสมาชิกรายเดิมเสมอ — มีประโยชน์สำหรับแอปพลิเคชันที่มีสถานะ การเพิ่มหรือลบ สมาชิกจะจัดเรียงแผนที่ของไคลเอนต์ ทั้งหมดใหม่ (N เปลี่ยนไปเป็น (N-1)/N ของเซสชันทั้งหมด)
Weighted
สมาชิกแต่ละรายจะได้รับส่วนแบ่งที่แปรผันตามน้ำหนักของตนเทียบกับน้ำหนักรวมของกลุ่ม สมาชิกที่มีน้ำหนัก=4 จะได้รับเซสชันมากกว่าสมาชิกน้ำหนัก=1 ถึง 4 เท่า ใช้เพื่อจำลอง ความจุแบ็กเอนด์ที่แตกต่างกัน (เช่น VM เทียบกับ bare-metal server)
Consistent Hashing
ทั้งสมาชิกและไคลเอนต์จะถูกแมปไปยังวงแหวนวงกลมผ่านการแฮช ไคลเอนต์แต่ละรายจะไปที่ สมาชิกที่ใกล้ที่สุดตามเข็มนาฬิกาบนวงแหวน โหนดเสมือน (โหนดซ้ำต่อสมาชิก) ปรับปรุงความสม่ำเสมอของการกระจาย เมื่อสมาชิกล้มเหลว เซสชันของสมาชิกนั้นจะย้ายไปยัง สมาชิกถัดไปบนวงแหวนเท่านั้น — รบกวน 1/N เซสชัน เทียบกับ 100% สำหรับการแฮชแบบ modulo