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
Bagaimana Cara Kerjanya?
Bayangkan ada 3 server backend. Saat request masuk:
- Client mengirim request ke load balancer, bukan langsung ke server
- Load balancer memilih server berdasarkan algoritma tertentu
- Server yang dipilih memproses request
- 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
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
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