ตอนนี้เรามีเซิร์ฟเวอร์แบ็คเอนด์เพียงหนึ่งตัวต่อเว็บไซต์ / บริการเว็บ ฉันสนใจที่จะฟังประสบการณ์ของผู้คนด้วยแอพโหลดบาลานเซอร์ (สิ่งที่ทำงานบน Linux)
คุณจะแนะนำอะไร
ตอนนี้เรามีเซิร์ฟเวอร์แบ็คเอนด์เพียงหนึ่งตัวต่อเว็บไซต์ / บริการเว็บ ฉันสนใจที่จะฟังประสบการณ์ของผู้คนด้วยแอพโหลดบาลานเซอร์ (สิ่งที่ทำงานบน Linux)
คุณจะแนะนำอะไร
คำตอบ:
ตามตอนที่ 27ของพอดคาสต์ StackOverflowพวก Reddit ดูเหมือนจะชอบHAProxyจริงๆ นี่เป็นสั้นสอนการแสดงHAProxy ถูกนำมาใช้กับของ Amazon EC2 คุณสามารถค้นหาข้อมูลเพิ่มเติมได้ที่เว็บไซต์ HAProxy
คำถามไม่ได้ให้ข้อมูลที่เฉพาะเจาะจงเกี่ยวกับการโหลดคุณสมบัติที่จำเป็น ฯลฯ ดังนั้นคำตอบใด ๆ ที่เป็นการคาดเดาที่ดีที่สุด
ปอนด์เป็นตัวเลือกที่ดีสำหรับไซต์ขนาดเล็ก / ขนาดกลาง มันให้การสนับสนุน HTTPS และติดตั้งง่าย
HAproxyสามารถปรับขนาดให้เหมาะสมกับท่ออีเธอร์เน็ต 10G และเสนอการ จำกัด การเชื่อมต่อเช่นส่งจำนวนคำขอพร้อมกันไปยังเซิร์ฟเวอร์แบ็กเอนด์แต่ละเครื่องเท่านั้นเนื่องจากคุณมีอินสแตนซ์ Apache children / Ruby on Rails เพื่อจัดการ
nginxนั้นยอดเยี่ยมในฐานะ load balancer และเซิร์ฟเวอร์ไฟล์สแตติก มันสามารถทำการบีบอัด HTTP, เขียน URL ใหม่และให้บริการไฟล์แบบคงที่ในขณะที่ทำการปรับสมดุลโหลด
Apacheอยู่ในซีรีย์ 2.2 ซึ่งเป็น load balancer ที่ดีทีเดียว สามารถทำได้เหมือนกับ nginx แต่วางโหลดบนเซิร์ฟเวอร์ที่สูงกว่า nginx ควรค่าแก่การดูว่าคุณคุ้นเคยกับ Apache มาแล้วและเป็นผู้ใหญ่มาก
Perlbalเสนอการเชื่อมต่อที่ จำกัด ได้อย่างง่ายดายสำหรับแบ็กเอนด์โฮสต์การร้องขอมัลติเพล็กซ์ในการเชื่อมต่อ HTTP แบบถาวรและการติดตั้งอย่างง่ายดายหากคุณใช้ Perl อยู่แล้ว
แคชวานิชเป็นพร็อกซี HTTP ย้อนกลับที่มีการสนับสนุนการทำโหลดบาลานซ์พื้นฐาน ไม่ใช่ load balancer ที่ยอดเยี่ยม แต่ในบางสถานการณ์การแคชในหน่วยความจำของอ็อบเจ็กต์ที่ร้องขอส่วนใหญ่สามารถลบเซิร์ฟเวอร์แบ็กเอนด์ที่มีเปอร์เซ็นต์สูงสุดและมีประสิทธิภาพที่ยอดเยี่ยม ESI รวมถึงสิ่งที่น่าสนใจ
ฉันไม่แน่ใจ 100% แต่ปิดส่วนหัวของฉัน Perlbal และ nginx ให้การสนับสนุนบางอย่างสำหรับการเปลี่ยนการตั้งค่าโดยไม่ต้องเริ่มโหลดบาลานเซอร์อีกครั้ง สำหรับไซต์ที่มีขนาดใหญ่สิ่งนี้สำคัญมากและเป็นหนึ่งในสิ่งที่เครื่องใช้โหลดบาลานเซอร์เชิงพาณิชย์ที่ดีทำได้ดี
จากทั้งหมดที่กล่าวมาเป็นตัวปรับสมดุลโหลดระดับ HTTP (เลเยอร์ 7) ตัวโหลดบาลานซ์ TCP / IP ระดับมีศักยภาพในการเข้าถึงทรูพุตที่สูงขึ้น แต่ถูก จำกัด ด้วยวิธีอื่น ผู้เขียน HAProxy ได้เขียนภาพรวมที่ดีและสามารถอ่านได้ของวิธีการสมดุลภาระและปัญหา: http://1wt.eu/articles/2006_lb/
LVSเป็นตัวปรับสมดุลโหลด TCP / IP ที่ใช้กันอย่างแพร่หลาย ไฟร์วอลล์ส่วนใหญ่ยังสามารถสร้างสมดุลภาระขั้นพื้นฐานในระดับ IP ได้โดยการร้องขอที่เข้ามาในช่วงที่อยู่ IP แบ็กเอนด์อย่างน้อย PF และ Cisco ASA และ Juniper Netscreens ของ OpenBSD อย่างน้อยสามารถทำได้
haproxy ทำงานได้ดีเช่นเดียวกับ LVS
FWIW, wordpress.com ใช้ nginx เป็นบาลานเซอร์ / พร็อกซี
เราใช้ LVS ในการผลิต จัดการโดยทีมงานของเราด้วยชุดสคริปต์ที่ซับซ้อนและชั่วร้าย ระบบ bespoke ที่ค่อนข้างชาญฉลาดจะประกาศข้อมูลด้านสุขภาพและประสิทธิภาพจาก realservers ของเราเพื่อให้ load balancer ตั้งค่าน้ำหนักให้เหมาะสม
LVS แน่นอนให้ความล้มเหลวเพียงจุดเดียว - ตัวโหลดบาลานซ์ (มีวิธีตั้งค่าซ้ำซ้อน)
ฉันคิดว่ามันซับซ้อนเกินไปในการตั้งค่าดังนั้นฉันจึงเขียนFluffy Linux Clusterซึ่งอิงกับวิธีการทำงานของ Windows NLB อย่างหลวม ๆ (ฉันคิดว่า ... ฉันไม่แน่ใจว่ามันทำงานอย่างไร) และได้รับแรงบันดาลใจจาก CLUSTERIP
เราไม่ได้ใช้มันในการผลิต แต่ฟลัฟฟี่สามารถโหลดจำนวนเซิร์ฟเวอร์ที่เหมาะสม (อย่างน้อย 5 ครั้ง) โดยไม่มีจุดล้มเหลวเดียวและไม่มีโหนดการจัดการจากส่วนกลางเป็นต้น
ฉันใช้ปอนด์ในอดีต มันรวดเร็วง่ายและต้องการความสนใจน้อยที่สุด
ฉันเป็นแฟนตัวยงของ LBTM หลายชั้นของ Zeus - คลิกที่นี่
หากคุณตัดสินใจที่จะไปกับ LVS ฉันจะดู Keepalived ด้วยหากคุณกำลังจะทำให้เลเยอร์เซิร์ฟเวอร์ของคุณทำโหลดบาลานซ์ได้สูง ฉันใช้ Heartbeat / Pacemaker กับ LVS มาหลายเดือนแล้วและพบว่ามันซับซ้อนเกินไปและบางครั้งก็ไม่เสถียรสำหรับเลเยอร์ HA LB อย่างง่าย