ซอฟต์แวร์ http load balancer?


19

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

คุณจะแนะนำอะไร

คำตอบ:


13

ตามตอนที่ 27ของพอดคาสต์ StackOverflowพวก Reddit ดูเหมือนจะชอบHAProxyจริงๆ นี่เป็นสั้นสอนการแสดงHAProxy ถูกนำมาใช้กับของ Amazon EC2 คุณสามารถค้นหาข้อมูลเพิ่มเติมได้ที่เว็บไซต์ HAProxy


3
ฉันใช้ HAProxy กับเซิร์ฟเวอร์ที่ใช้งานจริงจำนวนมากและชอบ มันง่ายในการกำหนดค่าและยังมีเว็บอินเตอร์เฟสที่ใช้งานง่ายเพื่อตรวจสอบสถานะและสถิติในแบบเรียลไทม์ หน้าจอที่ช่วยให้ฉันตั้งค่าตัวอย่างแรกของ HAProxz ได้ที่ [สัญญาณสัญญาณรบกวนกับบล็อกเสียงรบกวน] [1] [1]: 37signals.com/svn/posts/1073-nuts-bolts-haproxy
Wes Oldenbeuving

ฉันลืมเกี่ยวกับแง่มุมการจัดการ ฟังดูดีมาก
Mark Renouf

21

คำถามไม่ได้ให้ข้อมูลที่เฉพาะเจาะจงเกี่ยวกับการโหลดคุณสมบัติที่จำเป็น ฯลฯ ดังนั้นคำตอบใด ๆ ที่เป็นการคาดเดาที่ดีที่สุด

ปอนด์เป็นตัวเลือกที่ดีสำหรับไซต์ขนาดเล็ก / ขนาดกลาง มันให้การสนับสนุน 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 อย่างน้อยสามารถทำได้



3

haproxy ทำงานได้ดีเช่นเดียวกับ LVS

FWIW, wordpress.com ใช้ nginx เป็นบาลานเซอร์ / พร็อกซี


2

เราใช้ LVS ในการผลิต จัดการโดยทีมงานของเราด้วยชุดสคริปต์ที่ซับซ้อนและชั่วร้าย ระบบ bespoke ที่ค่อนข้างชาญฉลาดจะประกาศข้อมูลด้านสุขภาพและประสิทธิภาพจาก realservers ของเราเพื่อให้ load balancer ตั้งค่าน้ำหนักให้เหมาะสม

LVS แน่นอนให้ความล้มเหลวเพียงจุดเดียว - ตัวโหลดบาลานซ์ (มีวิธีตั้งค่าซ้ำซ้อน)

ฉันคิดว่ามันซับซ้อนเกินไปในการตั้งค่าดังนั้นฉันจึงเขียนFluffy Linux Clusterซึ่งอิงกับวิธีการทำงานของ Windows NLB อย่างหลวม ๆ (ฉันคิดว่า ... ฉันไม่แน่ใจว่ามันทำงานอย่างไร) และได้รับแรงบันดาลใจจาก CLUSTERIP

เราไม่ได้ใช้มันในการผลิต แต่ฟลัฟฟี่สามารถโหลดจำนวนเซิร์ฟเวอร์ที่เหมาะสม (อย่างน้อย 5 ครั้ง) โดยไม่มีจุดล้มเหลวเดียวและไม่มีโหนดการจัดการจากส่วนกลางเป็นต้น


อืม: LVS, สคริปต์ที่ชั่วร้าย, ระบบ bespoke ที่ค่อนข้างฉลาด การตั้งค่าของคุณเหมือนกับของเรา!
Tom Anderson



1

หากคุณตัดสินใจที่จะไปกับ LVS ฉันจะดู Keepalived ด้วยหากคุณกำลังจะทำให้เลเยอร์เซิร์ฟเวอร์ของคุณทำโหลดบาลานซ์ได้สูง ฉันใช้ Heartbeat / Pacemaker กับ LVS มาหลายเดือนแล้วและพบว่ามันซับซ้อนเกินไปและบางครั้งก็ไม่เสถียรสำหรับเลเยอร์ HA LB อย่างง่าย

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