Panduan

Apa Itu Rate Limiting? Panduan Bahasa Sederhana untuk App Builder

Rate limiting adalah aturan yang membatasi berapa banyak permintaan yang bisa dibuat seseorang ke sebuah sistem dalam jangka waktu tertentu — misalnya 5 percobaan login per menit, atau 100 panggilan API per jam. Setelah batas tercapai, permintaan selanjutnya ditolak (biasanya dengan kode error 429 Too Many Requests) sampai jendela waktunya ter-reset. Ini melindungi aplikasi dari penyalahgunaan, mencegah satu pengguna berat memperlambat semua orang, dan menghentikan biaya yang membengkak tanpa kendali.

Anda bertemu rate limiting dari dua sisi: layanan yang Anda panggil membatasi Anda, dan aplikasi Anda sendiri sebaiknya membatasi penggunanya.

Mengapa rate limiting penting saat membangun dengan AI

Aplikasi yang dibangun dengan AI sering terhubung ke layanan berbayar — model AI, email, SMS, peta — dan setiap panggilan memakan biaya. Itu membuat rate limiting sekaligus fitur keamanan dan fitur anggaran.

  • Kontrol biaya. Jika aplikasi Anda punya kotak "tanya AI" tanpa batas, bot bisa mengirim ribuan permintaan semalaman. Anda membayar setiap permintaan itu.
  • Keamanan. Tanpa batas pada formulir login, penyerang bisa mencoba ribuan kata sandi ke sebuah akun. Batas beberapa percobaan per menit membuat itu tidak praktis.
  • Tetap online. Satu skrip yang bermasalah — kadang kode Anda sendiri yang terjebak dalam loop — bisa membebani basis data dan membuat aplikasi mati.
  • Menghormati batas layanan lain. Ketika aplikasi Anda memanggil API luar terlalu sering, Anda yang mendapat error 429, dan fitur untuk pengguna Anda ikut rusak.

AI builder akan membangun apa yang Anda minta. Jika Anda tidak menyebutkan batas, sering kali hal itu terlewat.

Analogi sehari-hari

Bayangkan kebijakan isi ulang gratis di sebuah kedai kopi: "Satu isi ulang gratis per pelanggan per kunjungan."

  • Itu tidak menghalangi siapa pun untuk menikmati kopi.
  • Itu mencegah satu orang berdiri di meja kasir sepanjang hari mengisi ulang termos untuk seluruh kantor.
  • Saat seseorang meminta isi ulang keempat, barista dengan sopan berkata "belum bisa sekarang" — itulah 429-nya.

Rate limit yang baik tidak terlihat oleh pelanggan biasa dan hanya terasa oleh orang yang melakukan sesuatu yang tidak wajar.

Cara kerja rate limiting

Rate limiter memerlukan tiga hal:

BagianPertanyaan yang dijawabContoh
SiapaPermintaan siapa yang dihitung?Per akun pengguna, per alamat IP, per API key
Berapa banyakBerapa batasnya?5, 60, 1.000 permintaan
Per waktu apaDalam jendela waktu berapa?Per detik, menit, jam, hari

Saat permintaan datang, aplikasi memeriksa jumlah untuk "siapa" tersebut. Di bawah batas: permintaan diteruskan dan jumlahnya naik. Di atas batas: permintaan ditolak.

Ada beberapa cara umum untuk menghitung:

MetodeCara kerjanyaTrade-off
Fixed windowHitungan di-reset menurut jam — misalnya setiap menit tepatSederhana, tetapi memungkinkan lonjakan di tepi dua jendela
Sliding windowMelihat 60 detik terakhir dari sekarangLebih halus, sedikit lebih berat untuk dihitung
Token bucketSetiap pengguna punya ember yang terisi dengan laju tetap; setiap permintaan memakai satu tokenMengizinkan lonjakan singkat sambil menjaga rata-rata tetap stabil

Hitungannya perlu disimpan di tempat yang cepat dan bisa dibagi. Di satu server kecil, memori sudah cukup. Begitu aplikasi berjalan di beberapa mesin, penghitung biasanya berada di penyimpanan bersama seperti Redis atau basis data; jika tidak, tiap mesin menghitung sendiri-sendiri dan batas yang sebenarnya menjadi beberapa kali lebih tinggi.

Seperti apa respons yang melebihi batas

Saat permintaan melebihi batas, API yang baik merespons dengan:

  • Kode status 429 Too Many Requests.
  • Sering kali header Retry-After, yang menyebutkan berapa detik harus menunggu.
  • Kadang header yang menunjukkan batas Anda dan berapa permintaan yang tersisa dalam jendela ini (nama-namanya berbeda antar penyedia).

Aplikasi Anda sebaiknya merespons 429 dengan menunggu dan mencoba lagi nanti — idealnya dengan exponential backoff, yaitu menunggu sedikit lebih lama setelah setiap percobaan yang gagal (1 detik, lalu 2, lalu 4), alih-alih terus-menerus menghantam layanan.

Contoh nyata: asisten penulisan AI

Anggap Anda membangun aplikasi tempat pengguna menempelkan teks dan mendapat hasil tulis ulang dari AI.

Tanpa batas: seseorang menulis skrip yang mengirim 20.000 permintaan semalaman. Tagihan penyedia AI Anda melonjak, dan akun Anda mencapai batas rate limit penyedia itu sendiri, sehingga pengguna sungguhan melihat error sepanjang pagi.

Dengan batas yang masuk akal:

  1. Per pengguna yang sudah masuk: 30 tulis ulang per jam untuk paket gratis, 300 untuk paket berbayar. Jika melebihi batas, pengguna melihat: "Anda sudah mencapai batas jam ini. Coba lagi dalam 12 menit, atau upgrade."
  2. Per alamat IP pada formulir pendaftaran: 5 pendaftaran per jam, untuk mencegah bot membuat ribuan akun gratis guna menghindari batas per pengguna.
  3. Batas pengeluaran yang diatur di dasbor penyedia AI Anda, sebagai lapisan pertahanan terakhir jika semua yang lain gagal.
  4. Menangani batas penyedia: jika penyedia AI mengembalikan 429, server Anda menunggu dan mencoba lagi satu atau dua kali, lalu menampilkan pesan ramah "sedang sibuk, silakan coba lagi".

Batas diperiksa di server. Batas yang hanya ada di browser — misalnya menonaktifkan tombol setelah 30 klik — bisa dilewati siapa pun yang memanggil API Anda secara langsung.

Istilah kunci

IstilahArtinya
Rate limitJumlah permintaan maksimum yang diizinkan dalam satu jendela waktu.
QuotaJatah yang lebih besar, sering per hari atau per bulan, kadang terikat paket berbayar.
429Kode status HTTP untuk "terlalu banyak permintaan".
Retry-AfterHeader respons yang menyebutkan berapa lama harus menunggu sebelum mencoba lagi.
ThrottlingMemperlambat atau menolak permintaan yang melebihi batas. Sering dipakai sebagai sinonim.
Exponential backoffMenunggu makin lama di antara percobaan ulang.
BurstLonjakan singkat banyak permintaan sekaligus.
Brute-force attackMencoba sangat banyak kata sandi atau kode sampai ada yang berhasil.

Kesalahpahaman umum

  • "Rate limiting hanya untuk aplikasi besar." Aplikasi kecil juga menjadi sasaran, karena bot memindai seluruh internet untuk mencari formulir dan endpoint AI yang terbuka. Biaya penyalahgunaan tidak bergantung pada ukuran Anda.
  • "Menyembunyikan tombol sudah cukup." Batas di sisi browser hanya bentuk kesopanan, bukan perlindungan. Batas yang sebenarnya harus ditegakkan di server.
  • "Batas per IP selalu adil." Banyak orang bisa berbagi satu alamat IP — kantor, sekolah, jaringan seluler. Batas per pengguna lebih adil begitu orang sudah masuk.
  • "Error 429 berarti layanannya rusak." Artinya Anda memanggilnya terlalu sering. Periksa kode Anda untuk loop, dan simpan (cache) hasil yang jarang berubah — lihat apa itu caching.
  • "Rate limiting menggantikan batas pengeluaran." Gunakan keduanya. Batas di aplikasi Anda bisa punya bug; batas pengeluaran penyedia adalah cadangan Anda.

Yang bisa Anda tanyakan ke AI builder Anda

  • "Tambahkan rate limiting di sisi server untuk login, pendaftaran, reset kata sandi, dan endpoint AI. Sarankan batas yang masuk akal."
  • "Batasi setiap pengguna yang sudah masuk hingga [N] permintaan AI per jam, dan tampilkan pesan yang jelas dengan waktu tunggu saat batas tercapai."
  • "Saat API luar mengembalikan 429, coba lagi dengan exponential backoff hingga 3 kali, lalu tampilkan error yang ramah."
  • "Di mana penghitung rate limit disimpan? Apakah tetap berfungsi jika aplikasi berjalan di lebih dari satu mesin?"
  • "Catat setiap kali pengguna atau IP mencapai batas, agar saya bisa mengenali penyalahgunaan."
  • "Layanan luar mana saja yang dipanggil aplikasi ini, dan berapa batas rate limit mereka?"

Rate limiting di Mythex

Dokumentasi Mythex lugas soal ini untuk fitur AI: rate limit, keamanan, dan kontrol biaya di aplikasi yang Anda bangun adalah tanggung jawab Anda untuk dirancang — lihat Membangun aplikasi AI. Mintalah agen menambahkan batas dalam pesan yang sama ketika Anda meminta fitur tersebut. Di Pro, layanan yang dipublikasikan bisa berjalan di hingga tiga mesin saat lalu lintas tinggi (lihat Batas hosting), jadi mintalah penghitung yang disimpan di basis data, bukan di memori satu server.

Bacaan terkait: apa itu API, cara memakai LLM API, dan daftar periksa keamanan untuk aplikasi buatan AI.

Pertanyaan

Apa itu rate limiting secara sederhana?

Rate limiting adalah aturan yang membatasi berapa banyak permintaan yang bisa dibuat pengguna, perangkat, atau aplikasi dalam periode tertentu — misalnya 5 percobaan login per menit atau 100 panggilan API per jam. Permintaan yang melebihi batas ditolak sampai jendela waktunya ter-reset.

Apa arti error 429 Too Many Requests?

Status HTTP 429 berarti Anda mengirim terlalu banyak permintaan dalam waktu yang terlalu singkat dan mencapai batas rate limit. Responsnya sering menyertakan header Retry-After yang menyebutkan berapa lama harus menunggu. Solusinya adalah memperlambat, mencoba lagi setelah jeda, atau mengurangi seberapa sering aplikasi Anda memanggil layanan tersebut.

Mengapa aplikasi bertenaga AI saya perlu rate limiting?

Setiap permintaan AI memakan biaya dalam token. Tanpa batas, satu pengguna atau bot bisa mengirim ribuan permintaan dan menaikkan tagihan besar atau menghabiskan kuota penyedia Anda, sehingga fitur itu mati untuk semua orang. Batas per pengguna menjaga biaya tetap dapat diprediksi.

Apakah rate limiting sama dengan throttling?

Keduanya sangat berkaitan dan sering dipakai bergantian. Rate limiting biasanya berarti menolak permintaan yang melebihi batas, sedangkan throttling juga bisa berarti memperlambat atau mengantrekan permintaan alih-alih langsung menolaknya.

Apakah rate limiting menghentikan serangan DDoS?

Ia membantu melawan banjir kecil dan penyalahgunaan dari pengguna atau alamat IP tertentu, tetapi serangan terdistribusi besar datang dari banyak alamat sekaligus. Perlindungan terhadap serangan itu biasanya dilakukan di tingkat jaringan atau CDN, sebelum lalu lintas mencapai aplikasi Anda.

Mythex · Pricing · Bangun apa pun dengan AI · Template website dan aplikasi · Mythex dibandingkan · Glosarium membuat aplikasi dengan AI · Alat gratis untuk membuat aplikasi dengan AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)