• בלוג
  • חלוקת עומסים (Load Balancer)

חלוקת עומסים (Load Balancer)

    חלוקת עומסים (Load Balancer)

    פורסם ב 04-02-2020

    מה זה בכלל?

    בהגדרתו, הוא שירות הנועד לאיזון וחילוק עומסים מחושב בין מספר שרתי web אשר מנגישים את אותו התוכן. שירות חכם זה מבטיח זמינות תוכן גבוהה לכלל גולשי האתר, תוך שכלול מספר רב של גורמים בזמן אמת.

    למה צריך LOAD BALANCER?

    זה ידוע כי שרתים אשר מאחסנים אתרי אינטרנט גדולים צריכים להגיש כמות גדולה מאוד של תכנים לכמות הולכת וגדלה של גולשים. אך מה ניתן לעשות כאשר כמות התעבורה ובעקבות זאת גם עוצמת השרת הדרושה כדי להגיש תכנים אלה גדלות באופן עקבי?

    פתרון אחד הוא להשתמש בשרתים גדולים ועוצמתיים יותר ויותר. הבעיות עם צעד זה הן העלות הכרוכה בשרתי “עלית” אלה וגם העובדה שגם לשרת הכי חזק תמיד יהיה גבול עליון של משאבים אותם הוא יכול לספק.

    פתרון יעיל יותר הוא “לרתום עוד סוס לעגלה”. הכוונה היא שבמקום ששרת בודד יגיש את כל התוכן של האתר, שני שרתים או יותר יחלקו ביניהם את פניות הגולשים וכך גם את העומס.

    פה נכנס לתמונה ה-LOAD BALANCER, שהוא למעשה הגוף שאחראי על חלוקת העומסים בין השרתים השונים, שירות זה קובע לאיזה משרתי ה- WEB יש להפנות את הגולש הבא שיכנס לאתר.

    איך זה עובד בפועל?

    ה-LOAD BALANCER למעשה משמש כ”קו ראשון” אליו מפנה הדומיין כאשר נשלחת אליו בקשה בפרוטוקול HTTP. שירות זה עושה שימוש במספר אלגוריתמים ופעולות מתמטיות, ועל ידי כך יכול לזהות את מצב התקינות הנוכחי של שרתי ה-web ואת העומס הנוכחי הקיים בהם. כמו כן, בעזרת בדיקה רציפה של סקריפט ניטור המוגדר בשרת ה-web מסוגל ה-LOAD BALANCE לזהות אי תקינות באחד מהשרתים המחוברים אליו, ובעקבות כך לחדול לשלוח לו בקשות.

    סוגי האלגוריתמים השונים

    • ROUND ROBIN – כל חיבור תמיד יגיע לשרת הבא לפי הסדר, כך שאם מחוברים שני שרתי web, חיבור 1 יגיע לשרת 1, חיבור 2 לשרת 2, חיבור 3 לשרת 1, חיבור 4 לשרת 2 וכן הלאה בהתאמה.
    • LEAST CONNECTIONS – ה-LOAD BALANCER בודק לאיזה שרת יש כרגע הכי פחות משתמשים מחוברים, ולפי כך מנתב את המשתמש הבא לשרת הכי פחות עמוס.
    • LEAST RESPONSE TIME – ה-LOAD BALANCER בודק כמה זמן לוקח לכל שרת web להגיב לפניה ושולח את הגולש הבא לשרת בעל זמן התגובה הקצר ביותר.
    • LEAST BANDWIDTH – ה-LOAD BALANCER בודק כמה תעבורה יש בכל אחד משרתי ה-web ושולח את הגולש הבא לשרת בעל התעבורה המעטה ביותר.

    אחידות המידע
    מכיוון שמדובר במספר שרתים אשר אמורים לספק את אותו התוכן חשוב לוודא שהמידע מסונכרן באופן עקבי בין כל שרתי ה-web אשר מחוברים אל אותו LOAD BALANCER.
    ישנם מספר כלי סנכרון שמאפשרים לוודא שכל המידע הנשמר על שרת web אחד יעבור גם ליתר השרתים הנמצאים באשכול.

    לסיכום
    ה-LOAD BALANCER בשילוב עם אשכול(cluster) שרתי web, הוא כלי המאפשר למנהלי רשת גמישות רבה בניהול המערכת שלהם. כך למשל במידה ויש צפי להגדלה משמעותית בכמות הגולשים, ניתן להוסיף שרתי web נוספים לאשכול ולחבר אותם אל ה-LOAD BALANCER. באותה מידה אם יש צפי לירידה בתעבורה, ניתן כמובן להסיר מה-cluster את השרתים המיותרים.

    השותפים שלנו

    • js-partners-02
    • js-partners-03
    • js-partners-04
    • js-partners-06
    • mariadb-icon
    • docker-icon
    • nodejs
    Skip to content