Monday, October 12, 2026

Request itu Server yang Mana yang Akan Menerima? — Load Balancing untuk Pemula

 Pernahkah kamu bertanya-tanya: ketika jutaan user mengakses aplikasi secara bersamaan, server mana yang menerima request tersebut? Bagaimana sistem memastikan bahwa tidak ada satu server yang kelebihan beban (overload)ementara server lainnya menganggur? Jawabannya ada pada konsep load balancing.

Apa itu Load Balancing?

Load balancing adalah teknik mendistribusikan traffic (request) dari pengguna ke beberapa server secara merata. Tujuannya sederhana:

  • 🚀 Meningkatkan performa aplikasi
  • 🛡️ Mencegah satu server down membuat aplikasi mati total
  • 📈 Memungkinkan aplikasi berkembang (scale) sesuai jumlah user
Analogi sederhana:Bayangkan ada 3 kasir di supermarket. Tanpa pengaturan, semua orang antre di kasir pertama sampai penuh, sementara kasir lain kosong. Load balancing seperti loket yang mengatur antrian — mendistribusikan pengunjung ke kasir yang paling sedikit antriannya.

Bagaimana Cara Kerjanya?

Bayangkan ada 3 server backend. Saat request masuk:

  1. Client mengirim request ke load balancer, bukan langsung ke server
  2. Load balancer memilih server berdasarkan algoritma tertentu
  3. Server yang dipilih memproses request
  4. Load balancer mengirimkan response kembali ke client

Algoritma Load Balancing yang Umum

  • Round Robin — request dibagikan bergantian (server 1 → 2 → 3 → 1 → ...)
  • Least Connections — request dikirim ke server yang sedang menghandle paling sedikit koneksi
  • IP Hashing — client dengan IP yang sama selalu diarahkan ke server yang sama
  • Weighted — server dengan spesifikasi lebih tinggi menerima lebih banyak request

Contoh Sederhana di Nginx

# nginx.conf - Contoh load balancing sederhana http {upstream backend_servers {# Round Robin (default)server 192.168.1.10:8080; server 192.168.1.11:8080; server 192.168.1.12:8080; }server { listen 80;location / { proxy_pass http://backend_servers; } } }

Dengan konfigurasi di atas, setiap request yang masuk akan didistribusikan bergantian ke ketiga server.

Kenapa Ini Penting?

Bayangkan tanpa load balancing:

  • ❌ 10.000 user → 1 server → down
  • ❌ Server mati → seluruh aplikasi tidak bisa diakses
  • ❌ Tidak bisa menambah server baru tanpa mengubah IP publik

Dengan load balancing:

  • ✅ 10.000 user → 5 server → stabil
  • ✅ 1 server mati → traffic otomatis dialihkan ke server lain
  • ✅ Bisa tambah/kurang server tanpa downtime

Tools Load Balancing Populer

Nginx HAProxy AWS ALBCloudflare TraefikKubernetes Ingress

Kesimpulan

Load balancing adalah tulang punggung aplikasi modern yang melayani banyak pengguna. Tanpa ini, aplikasi yang traffic-nya besar akan mudah down dan tidak reliable. Jika kamu membangun backend, memahami konsep ini adalah langkah penting sebelum skala produksi.

💡 Langkah selanjutnya: Coba setup Nginx sebagai load balancer dengan 2–3 server sederhana, lalu uji dengan tool seperti Apache Benchmark atau k6.

No comments:

Post a Comment