Load Balancing Algorithms (Stateless & Stateful)
একটি সিঙ্গেল সার্ভারের ক্ষমতা সীমিত। যখন ইউজারের সংখ্যা অনেক বেড়ে যায়, তখন অনেকগুলো সার্ভার মিলে রিকোয়েস্ট হ্যান্ডেল করতে হয়। এই রিকোয়েস্টগুলো কোন সার্ভারে যাবে তা ঠিক করাই হলো Load Balancer এর কাজ।
1. Stateless vs Stateful Load Balancing
Stateless Load Balancing
এখানে লোড ব্যালেন্সার প্রতিটি রিকোয়েস্টকে আলাদা হিসেবে দেখে। ইউজার আগে কোন সার্ভারে ছিল তার কোনো রেকর্ড রাখা হয় না।
- সুবিধা: স্কেল করা খুব সহজ। কোনো সার্ভার ডাউন হলে অন্য সার্ভারে রিকোয়েস্ট পাঠানো যায় সহজেই।
- অসুবিধা: ইউজারের সেশন ডেটা (যেমন লগইন ইনফরমেশন) সব সার্ভারের এক্সেসযোগ্য হতে হয় (যেমন Redis বা Shared DB ব্যবহার করে)।
Stateful Load Balancing (Sticky Sessions)
এখানে লোড ব্যালেন্সার মনে রাখে যে ইউজারকে আগে কোন সার্ভারে পাঠানো হয়েছিল এবং পরবর্তী রিকোয়েস্টগুলো সেই নির্দিষ্ট সার্ভারেই পাঠায়।
- সুবিধা: সেশন ডেটা সার্ভারের লোকাল মেমোরিতে রাখা যায়।
- অসুবিধা: যদি সেই নির্দিষ্ট সার্ভারটি ডাউন হয়ে যায়, তবে ইউজার সেশন রিমুভ হয়ে যায়। লোড ডিস্ট্রিবিউশন অসম হতে পারে।
2. Load Balancing Algorithms
সার্ভার সিলেক্ট করার জন্য লোড ব্যালেন্সার বিভিন্ন অ্যালগরিদম ব্যবহার করে:
Static Algorithms (Stateless)
- Round Robin: একের পর এক সার্ভারে রিকোয়েস্ট পাঠানো হয় (যেমন: সার্ভার ১ -> ২ -> ৩ -> ১)।
- Weighted Round Robin: যে সার্ভারের ক্ষমতা বেশি, তাকে বেশি রিকোয়েস্ট পাঠানো হয়।
- IP Hash: ইউজারের আইপি অ্যাড্রেসের ওপর ভিত্তি করে একটি নির্দিষ্ট সার্ভার সিলেক্ট করা হয়।
Dynamic Algorithms (Stateful/Aware)
- Least Connections: বর্তমানে যে সার্ভারে সবচেয়ে কম কানেকশন আছে, সেখানে রিকোয়েস্ট পাঠানো হয়।
- Least Response Time: যে সার্ভার সবচেয়ে দ্রুত রেসপন্স দিচ্ছে, তাকে প্রাধান্য দেওয়া হয়।
কেন লোড ব্যালেন্সার জরুরি?
- High Availability: একটি সার্ভার ডাউন হলেও পুরো সিস্টেম সচল থাকে।
- Scalability: ট্রাফিক বাড়লে খুব সহজেই নতুন সার্ভার যোগ করা যায়।
- Security: সরাসরি সার্ভারের আইপি এক্সপোজ না করে এটি একটি লেয়ার হিসেবে কাজ করে।
TIP
আধুনিক ক্লাউড সিস্টেমে (যেমন AWS ALB বা Nginx) সাধারণত Round Robin বা Least Connections বেশি ব্যবহার করা হয়। সেশন সেন্ট্রালাইজড রাখার জন্য Redis ব্যবহার করা হলে স্টেটলেস আর্কিটেকচার সবচেয়ে ভালো পারফরম্যান্স দেয়।