صفر تا قهرمانصفر تا قهرمان
  • صفحه اصلی
  • دوره ها

    جستجو دوره ها

    چیزی را که علاقه دارید جستجو کنید

      دسته ها

      • امنیت
      • برنامه نویسی
        • اندروید
        • پایتون
      • نرم افزارهای مهندسی
        • ANSYS
        • Solid Works
    • مقالات
      • اندروید
      • پایتون
      • جاوا
      • طراحی و توسعه‌ی وب
      • جاوا اسکریپت
      • سی شارپ
      • بازی سازی
      • پایگاه داده‌ها
      • شبکه
      • لینوکس
      • امنیت
      • هوش مصنوعی و یادگیری ماشین
      • علم داده‌ها
      • واقعیت ترکیبی
      • واقعیت مجازی
      • هنرهای دیجیتال
        • After Effect
        • Illustrator
        • Indesign
        • Photoshop
      • نرم افزارهای مهندسی
        • ANSYS
        • Matlab
        • Solidworks
      • آکادمیک
        • نظریه بازی‌ها
      • مدیریت پروژه
      • اینترنت اشیا
      • گوناگون
    • ویدیوهای رایگان
    • رویدادها
    • همکاری با ما
    • تماس با ما
    • عضویت ورود

      Connect with:

      Login with Google Login with LinkedIn

      logo

      ورود به حساب کاربری

      Connect with:

      Login with Google Login with LinkedIn
      logo


      رمز عبوررا فراموش کرده اید؟

      هنوز عضو نیستید؟همین حالا عضو شو!

      • صفحه اصلی
      • دوره ها

        جستجو دوره ها

        چیزی را که علاقه دارید جستجو کنید

          دسته ها

          • امنیت
          • برنامه نویسی
            • اندروید
            • پایتون
          • نرم افزارهای مهندسی
            • ANSYS
            • Solid Works
        • مقالات
          • اندروید
          • پایتون
          • جاوا
          • طراحی و توسعه‌ی وب
          • جاوا اسکریپت
          • سی شارپ
          • بازی سازی
          • پایگاه داده‌ها
          • شبکه
          • لینوکس
          • امنیت
          • هوش مصنوعی و یادگیری ماشین
          • علم داده‌ها
          • واقعیت ترکیبی
          • واقعیت مجازی
          • هنرهای دیجیتال
            • After Effect
            • Illustrator
            • Indesign
            • Photoshop
          • نرم افزارهای مهندسی
            • ANSYS
            • Matlab
            • Solidworks
          • آکادمیک
            • نظریه بازی‌ها
          • مدیریت پروژه
          • اینترنت اشیا
          • گوناگون
        • ویدیوهای رایگان
        • رویدادها
        • همکاری با ما
        • تماس با ما

        شبکه

        • خانه
        • بلاگ
        • شبکه
        • آشنایی با مفهوم Load Balancing

        آشنایی با مفهوم Load Balancing

        • ارسال شده توسط وحید رجبی
        • دسته بندی شبکه, لینوکس
        • تاریخ اسفند 1, 1396
        • نظرات 0 نظر

        یکی از مفاهیم بسیار پرکاربرد در برنامه نویسی Backend٬ مفهوم Load Balancing است. در این مقاله قصد داریم تا این مفهوم را مورد بررسی قرار دهیم.

        Load balancing به این معنا است که ترافیک ورودی شبکه به صورت بهینه میان دسته از Backend Server تقسیم شود. به این دسته ها Server Farm و یا Server Pool گفته می‌شود.

        وب سایت‌هایی که کاربران زیادی دارند با حجم عظیمی از درخواست ها مواجه هستند که باید به ازای هر درخواست٬ پاسخ متناسبی را ارسال کنند. برای پاسخگویی به درخواست ها در تعداد بالا٬ باید چندین Server به پروژه اضافه شوند.

        یک Load balancer مانند یک پلیس است که در ابتدای مسیر ورودی به Server ها قرار می‌گیرد و مشخص می‌کنند که هر ترافیک به کدام Server هدایت شود. به این ترتیب حجم بالایی از درخواست ها تنها به یک Server ارسال نمی‌شود و کارایی سیستم را پایین نمی‌آورد. این امر باعث می‌شود تا سرعت پاسخگویی و بهره وری از سیستم افزایش یابد. همچنین اگر یک Server دچار مشکل شود و امکان پاسخگویی نداشته باشد٬Load Balancer ترافیک ها را به Server های دیگر هدایت می‌کند. در مقابل اگر یک Server جدید اضافه شود٬ Load Balancer به صورت خودکار درخواست ها را به آن نیز ارسال می‌کند.

        پس می‌توان کاربرد Load balancer را به این صورت خلاصه کرد:

        • درخواست های ارسال از Client ها را به صورت بهینه میان Server ها تقسیم می‌کند

        • درخواست ها را فقط به Server هایی که قادر به پاسخگویی هستند(Online Server) ارسال می‌کند

        • امکان اضافه کردن و کم کردن Server ها را فراهم می‌کند

        الگوریتم های Load Balancing

        سه الگوریتم زیر در Load balancing استفاده می‌شود:

        • Round Robin: درخواست ها را به ترتیب میان Server ها تقسیم می‌شوند

        • Latest Connection : درخواست جدید به سروری که تعداد اتصالات آن کمتر است ارسال می‌شود

        • IP Hash: در این الگوریتم IP که به Client اختصاص داده شده است٬ Server را تعیین می‌کند

        مقایسه میان Load Balancing نرم افزاری و سخت افزاری

        Load Balancing به دو صورت سخت افزاری و نرم افزاری قابل انجام است. در روش سخت افزاری٬ دستگاه‌هایی در مقابل Server ها قرار می‌گیرد به این ترتیب ترافیک ها را میان Server ها تقسیم می‌کند. نرم‌افزار هایی مختص به این کار و متناسب با ساختار آن بر روی دستگاه‌ها نصب می‌شوند.

        UTT_device_load_balancer

        تصویر فوق یک Router از شرکت UTT که قابلیت Load Balancing را نیز دارد. اگر درخواست های ارسالی به سیستم افزایش یابد, باید دستگاه هایی با ظرفیت بیشتر را جایگزین کنیم.

        در مقابل نرم افزار های Load Balancing بر روی تمام سیستم ها قابل اجرا است. به این ترتیب هزینه استفاده از آن کمتر و نسبت به گسترش پروژه منعطف تر است. برای مثال NGINX Plus یکی از نرم افزار هایی است که برای این امر استفاده می‌شود.

        اعتبار Session ها

        جابجایی میان Server  ها ممکن است باعث مشکل در یکسری از تبادلات شود. برای مثال تراکنش مالی یک نمونه از چنین ارتباطاتی است که جابجایی میان Server ها باعث بروز مشکل در روال آن می‌شود. به همین علت تمام تبادلات, به ازای هر Session, باید با یک Server انجام شود. به این معنا که تا وقتی یک Session معتبر است, درخواست های این Client به Server دیگری ارسال نشود. به چنین عملی Session Persistance گفته می‌شود.

        گاهی یک Server از Caching استفاده می‌کند تا بتواند با سرعت بالاتری به درخواست های یک Client پاسخ دهد. جابجایی میان Server ها باعث می‌شود تا یکسری از اطلاعات مجددا دریافت و یا پردازش شوند که به نوعی می‌توان آن را یک ضعف تلقی کرد. Session Persistance از بروز چنین مشکلی نیز جلوگیری می‌کند. بنابراین یک Load Balancer با خاصیت Session Persistance می‌تواند کارایی یک سیستم را به صورت چشم گیری افزایش دهد.

        در این مقاله سعی بر این شد تا با مفهوم Load Balancing و کارکرد آن آشنا شویم.

        با ما همراه باشید.

         

        برچسب:client, load balancer, network, server, session, سرور, شبکه

        • اشتراک گذاری:
        وحید رجبی

        مطلب قبلی

        آشنایی با دستور Enclosure در محیط DesignModeler نرم افزار ANSYS
        اسفند 1, 1396

        مطلب بعدی

        آشنایی با روند اجرای برنامه در جاوا
        اسفند 6, 1396

        ممکن است همچنین دوست داشته باشید

        network-ipv4
        لایه network و پروتکل ipv4
        12 مهر, 1397
        demo_image
        لایه فیزیکی (Physical)
        15 مرداد, 1397
        demo_image
        لایه پیوند داده(Data link) در مدل OSI
        13 تیر, 1397

        نظر بدهید لغو پاسخ

        ببخشید، برای نوشتن دیدگاه باید وارد بشوید

        جستجو

        آخرین دوره ها

        امنیت 1 – با محوریت مسابقات فتح پرچم (CTF)

        امنیت 1 – با محوریت مسابقات فتح پرچم (CTF)

        2,990,000 ﷼
        برنامه نویسی اندروید

        برنامه نویسی اندروید

        4,000,000 ﷼
        ANSYS – WorkBench

        ANSYS – WorkBench

        3,000,000 ﷼

        از ما باخبر باشید

        جدیدترین دوره ها را در ایمیل خود دریافت کنید، همین حالا ایمیل خود را وارد نمایید

        دریافت مشاوره

        مشاوره رایگان

        logo-samandehi

        پشتیبانی

        • سبد خرید
        • فروشگاه
        • عضویت
        • پیشخوان

        شرکت

        • صفحه اصلی
        • درباره ما
        • تماس با ما
        • همکاری با ما
        • سوالات متداول

        تماس

        •   info@zerotohero.ir
        •   ۰۱۱-۳۵۳۰۳۶۷۱
        •   مازندران، بابلسر، بلوار پاسداران، سازمان مرکزی دانشگاه مازندران، مرکز رشد دانشگاه
        • حساب کاربر
        • قوانین
        • سوالات متداول

        تمامی حقوق این سایت متعلق به مجموعه آموزشی صفرتاقهرمان می باشد.