Load balancer: কী কাজ করে ও algorithm বাছাই

Load balancer আপনার server-গুলোর সামনে বসে traffic ভাগ করে দেয়। L4 বনাম L7, মূল algorithm এবং health check কীভাবে মৃত server থেকে user-কে বাঁচায়, জানুন।

একাধিক server-এ ভাগ হওয়া traffic

Load balancer আসা request ধরে একটি করে backend server-এ পাঠায়। এতে ক্ষমতা বাড়ে, আর কোনো server নষ্ট হলে user তা টের পায় না।

Layer 4 বনাম Layer 7

  • L4 (transport): শুধু IP আর port দেখে সিদ্ধান্ত নেয়। খুব দ্রুত ও সহজ, কিন্তু request-এর ভেতরে দেখতে পারে না।
  • L7 (application): HTTP request পড়ে, তাই path (/api বনাম /images), host বা header অনুযায়ী route করতে পারে, TLS শেষ করতে পারে, cache দিতে পারে। Nginx, HAProxy, Envoy আর cloud-এর application load balancer এখানে কাজ করে।

জনপ্রিয় algorithm

  • Round robin: server-রা পালা করে। সব request-এর খরচ কাছাকাছি হলে ভালো।
  • Weighted round robin: বড় server বেশি পায়।
  • Least connections: সবচেয়ে কম সক্রিয় request-এর server-এ পাঠায়। Request-এর দৈর্ঘ্য আলাদা হলে ভালো।
  • IP hash / consistent hash: একই client একই server-এ যায়। Cache ও sticky আচরণের জন্য কাজের।

Health check

Balancer প্রতিটি server-কে ping করে (যেমন GET /health), ব্যর্থ হলে তুলে রাখে, ঠিক হলে ফেরত আনে। এটি না থাকলে user মৃত server-এ গিয়ে পড়ে।

Sticky session

একই user-কে একই server-এ পাঠালে memory-র session কাজ করে, কিন্তু load অসম হয় আর ওই server মরলে সব ভাঙে। বরং stateless server রাখুন, session থাকুক Redis বা token-এ।

Balancer নিজে

একটিমাত্র load balancer নিজেই single point of failure। দুটি চালান (active/passive বা active/active), সাথে shared IP বা DNS, অথবা cloud-এর managed সেবা নিন।

মূল কথা: ওয়েব অ্যাপে L7 নিন, round robin বা least connections দিয়ে শুরু করুন, health check অবশ্যই দিন, আর একা একটি balancer ফেলে রাখবেন না।


System Design সিরিজের 4 নম্বর পর্ব (মোট ১৫)। আগের পর্ব: CAP theorem: সহজ ভাষায়, উদাহরণসহ.

আরও পড়ুন

Recursion ও backtracking সহজ উদাহরণে

Recursion সমস্যার ছোট কপি সমাধান করে সমাধান করে। অনেক interview সমস্যায় ব্যবহৃত চিন্তার ধাপ ও backtracking টেমপ্লেট শিখুন।

Interview ও DSA•৩ মিনিটে পড়া