Load Balancer Pool Distribution Analyzer

การวิเคราะห์การกระจายโหลดบาลานเซอร์พูล

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

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

สมาชิกพูล

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

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

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

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

Consistent Hash Ring

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

คำอธิบายอัลกอริทึม

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