C11 · Modul 02
Dari satu server ke banyak
43 langkah singkat, dari mudah sampai tantangan.
Level 1
Kenal
Level 2
Paham
Level 3
Terapkan
Level 4
Tantangan
Level 5
Pendalaman
Intinya
- Memperbanyak server hanya bekerja bila status tidak tinggal di satu mesin: sesi, pembatas laju, cache lokal, berkas, jadwal, dan identitas klien dipindah ke tempat bersama atau dibawa klien dengan aman.
- Skala horizontal dihitung dulu: N+1, porsi kapasitas yang hilang saat satu mesin mati, dan koneksi basis data total (mesin × pool).
- Cara membagi permintaan menentukan latensi: dua pilihan acak hampir sebaik melihat semua server (2,61 lawan 10 kali waktu layanan pada utilisasi 90%).
- Informasi beban yang basi membuat "kirim ke yang paling sepi" runtuh karena efek kawanan; keacakan adalah obatnya.
- Liveness tidak menyentuh dependensi, readiness boleh; draining dan kebijakan deploy dihitung dengan hukum Little dan (n − 1)/n.
Sebelum mulai
±6 jam.
Modul ini memakai materi di bawah. Belum yakin? Ulas dulu bagian yang disebut.
Hasil belajar: membandingkan skala vertikal dan horizontal dengan angka: kapasitas, ruang cadangan N+1, domain kegagalan, dan efek berganda pada koneksi basis data; menemukan status tersembunyi di layanan (sesi, pembatas laju, cache lokal, berkas lokal, identitas klien di balik proxy) dan memindahkannya agar layanan bisa diperbanyak; menulis PenyeimbangBeban dengan round_robin, koneksi_tersedikit, dan dua_pilihan, lalu mengukur beban dan latensinya di simulasi berbasis kejadian; menjelaskan power of two choices dengan model bola-ke-keranjang dan model supermarket (Azar dkk. 1999; Mitzenmacher 2001), dan mengapa informasi beban yang basi membuat least connections runtuh; merancang health check (live lawan ready), draining, dan rolling deploy, serta membaca konfigurasi penyeimbang beban terkelola.
Hasil lab: bagian 2 dokumen desain Tryout Nusantara (desain/02-lapisan-api.md): inventaris status, keputusan sesi, algoritma penyeimbang dengan bukti simulasi, spesifikasi health check; PenyeimbangBeban di nusantara.py. Semua contoh memakai pustaka standar Python 3.11–3.13; keacakan selalu berbenih (random.Random(42) atau benih lain yang disebut).
Istilah di modul ini (27)
Ketuk istilah untuk melihat penjelasannya. Di materi, istilah bergaris titik membuka kartu yang sama. Semua istilah course
Bahan modul
Semua kode, latihan, dan data modul ini dalam satu zip, untuk dijalankan di laptop atau Google Colab.
- 12 contoh kode
- 7 berkas latihan + tes
Lihat isi zip
- BACA-DULU.txt
- contoh_c11_02_26.py
- contoh_c11_02_91.py
- contoh_c11_02_163.py
- contoh_c11_02_361.py
- contoh_c11_02_522.py
- contoh_c11_02_887.py
- contoh_c11_02_1041.py
- contoh_c11_02_1078.py
- contoh_c11_02_1113.py
- contoh_c11_02_1658.py
- contoh_c11_02_1746.py
- contoh_c11_02_1983.py
- test_c11_02_4.py
- test_c11_02_3.py
- test_c11_02_5.py
- test_c11_02_1.py
- test_c11_02_2.py
- test_c11_02_6.py
- test_c11_02_7.py