Load Balancers
- লোড ব্যালেন্সার হচ্ছে একটা সার্ভার, যে ক্লায়েন্ট এর রিকোয়েস্ট নিয়ে অন্য এক বা একাধিক সার্ভারের মধ্যে ডিস্ট্রিবিউট করে দিবে
- একটা সার্ভার নির্দিষ্ট সময়ের মধ্যে একটা সংখ্যার বেশি ক্লায়েন্ট এর রিকোয়েস্ট নিতে পারে না। যদি আমরা ভার্টিক্যাল স্কেলিং(র্যাম, প্রসেসর, ডিস্ক মেমরি ইত্যাদি যুক্ত করা) করি, তাহলেও একটা নাম্বার এর পর আর বেশি রিকোয়েস্ট নিতে পারে না। তখন হরাইজন্টাল স্কেলিং(একাধিক সার্ভার একই কাজ করবে) করতে হয়। হরাইজন্টাল স্কেলিং এর ক্ষেত্রে একাধিক সার্ভারকে এক সাথে কাজ করাতেই লোড ব্যালেন্সার দরকার
- রিভার্স প্রক্সি এক ধরনের লোড ব্যালেন্সার, ক্লায়েন্ট থেকে রিকোয়েস্ট নেয় এবং তা অন্য সার্ভারে ফরওয়ার্ড করে
- একাধিক লেভেলের লোড ব্যালান্সার হতে পারে। মানে একটা লোড ব্যালান্সার থেকে ফরওয়ার্ড হয়ে আরেকটা লোড ব্যালান্সার এর রিকোয়েস্ট পাঠানো
- Nginx, HAProxy হচ্ছে লোড ব্যালান্সার এর উদাহরন
লোড ব্যালেন্সার এর স্ট্রাটেজি
লোড ব্যালেন্সার যখন ক্লায়েন্টের রিকোয়েস্ট ফরওয়ার্ড করে তখন একটা স্ট্রাটেজি বেছে নিতে হয়। কমন স্ট্রাটেজি হচ্ছে
- রাউন্ড রবিন
- ওয়েটেড রাউন্ড রবিন
- র্যান্ডোম
- পারফরমান্স বেজড (শক্তিশালী সার্ভারে বেশি রিকোয়েস্ট পাঠানো)
- IP বেজড রাউটিং বা পাথ বেজড রাউটিং
লোড ব্যালেন্সার এর প্রকার
- সফটওয়্যার লোড ব্যালেন্সার - nginx
- ক্লাউড বেজড এবং - গুগল, এডাব্লিউ
- হার্ডওয়ার লোড ব্যালেন্সার