Throttle vs. Rate Limit | Perbedaan yang Wajib Diketahui

Pembatasan laju & throttling jaga API tetap lancar. Cegah beban berlebih, pelajari cara implementasinya!

Ardianto Nugroho

Ardianto Nugroho

6 July 2025

Throttle vs. Rate Limit | Perbedaan yang Wajib Diketahui

API adalah tulang punggung penting dari web modern kita, memungkinkan aplikasi yang berbeda untuk berkomunikasi dan bertukar data satu sama lain. Dengan setiap aplikasi memiliki ceruknya masing-masing, beberapa orang jahat cenderung menyalahgunakan aplikasi yang berguna ini, sehingga berdampak negatif pada pengalaman pengguna lain. Namun, bagaimana jika ada cara untuk mencegah hal ini?

💡
Sebagian besar alat API memiliki keterbatasan dalam hal penggunaannya - permintaan terbatas untuk dibuat, kasus uji terbatas untuk disiapkan, dan sebagainya. Namun, ada alat API yang melewati semua batasan ini.

Memperkenalkan kepada Anda Apidog, alat pengembangan API all-in-one yang memungkinkan Anda menguji API tanpa batas. Satu-satunya batasan yang dimiliki Apidog adalah batasan yang dimiliki API pihak ketiga (apakah mereka membatasi API mereka atau tidak).

Jika Anda tertarik untuk mencoba Apidog, mulai secara gratis hari ini (atau di masa mendatang) dengan mengklik tombol di bawah ini! 👇 👇 👇
button

Untuk mengetahui apa perbedaan antara throttling dan pembatasan laju, kita akan mendefinisikannya satu per satu.

Apa itu Throttling?

Dalam konteks API, throttling dianggap sebagai pendekatan dinamis untuk mengelola akses API dan mencegah API dari kelebihan beban. Throttling API mengatur aliran permintaan yang masuk untuk memastikan stabilitas dan kinerja API.

Fitur Utama Throttling API

1. Penyesuaian Dinamis:

2. Teknik dan Algoritma:

3. Opsi Konfigurasi:

4. Mekanisme Respons:

5. Fitur Lanjutan:

Contoh Kode Throttling API

1. Throttling API sederhana dengan penundaan (Python):

def handle_request(user_id):
  # Simulate checking a shared resource counter
  if resource_counter > threshold:
    time.sleep(delay_time)  # Throttle by introducing a delay
  # Process request logic here...

2. Token bucket throttling untuk permintaan API (Python)

from threading import Lock

class TokenBucket:
  """
  A simple token bucket class for rate limiting.
  """
  def __init__(self, capacity, refill_rate):
    """
    Initialize the token bucket with a specific capacity and refill rate.

    Args:
      capacity (int): The maximum number of tokens the bucket can hold.
      refill_rate (float): The rate at which tokens are added to the bucket (tokens per second).
    """
    self.capacity = capacity
    self.refill_rate = refill_rate
    self.tokens = capacity  # Start with a full bucket
    self.last_refill_time = time.time()
    self.lock = Lock()

  def consume(self, amount):
    """
    Attempts to consume a specified number of tokens from the bucket.

    Args:
      amount (int): The number of tokens to consume.

    Returns:
      bool: True if the tokens were consumed successfully, False otherwise.
    """
    with self.lock:
      self._refill()
      if self.tokens >= amount:
        self.tokens -= amount
        return True
      return False

  def _refill(self):
    """
    Refills the bucket based on the elapsed time and refill rate.
    """
    now = time.time()
    elapsed_time = now - self.last_refill_time
    self.tokens = min(self.capacity, self.tokens + (elapsed_time * self.refill_rate))
    self.last_refill_time = now

# Example usage
bucket = TokenBucket(capacity=5, refill_rate=1)  # 5 tokens, refilled at 1 token/second

def access_api():
  # Simulate API request logic here...
  print("Accessing API...")

if bucket.consume(2):
  access_api()
else:
  print("Request throttled, not enough tokens!")

# Try again after a short delay
time.sleep(1)

if bucket.consume(1):
  access_api()
else:
  print("Request throttled, not enough tokens!")

Penjelasan kode (langkah demi langkah):

  1. Pertama, definisikan kelas TokenBucket yang mengelola kumpulan token
  2. Mengambil kapasitas (token maksimum) dan laju pengisian ulang (token per detik) sebagai argumen.
  3. Metode consume mencoba menghapus sejumlah token tertentu dari bucket.
  4. Memanggil metode pribadi _refill untuk memastikan bucket diperbarui berdasarkan waktu lampau.
  5. Jika token cukup, mereka dikonsumsi - metode mengembalikan True
  6. Jika tidak, metode mengembalikan False - menunjukkan throttling.

Apa itu Pembatasan Laju?

Dalam konteks API, pembatasan laju mengacu pada batasan yang ditetapkan pada jumlah permintaan yang dapat dilakukan pengguna atau aplikasi dalam periode tertentu. Bayangkan itu seperti loket tiket di tempat wisata populer, di mana hanya sejumlah permintaan tertentu yang diizinkan per menit.

Fitur Utama Pembatasan Laju API

1.Konfigurasi Batas:

Batas Permintaan: Penyedia API menentukan jumlah maksimum permintaan yang diizinkan per pengguna atau aplikasi dalam jendela waktu tertentu (misalnya, 100 permintaan per jam). Batas ini dapat didasarkan pada faktor-faktor seperti:

Jendela Waktu: Batas diterapkan dalam jangka waktu tertentu, biasanya detik, menit, atau jam. Ini memungkinkan ledakan aktivitas yang terkontrol sambil mencegah kelebihan beban yang berkelanjutan.

2.Mekanisme Penghitungan:

Identifikasi Pengguna: Permintaan dikaitkan dengan pengguna atau aplikasi. Ini dapat dicapai melalui:

Penghitung Permintaan: API melacak jumlah permintaan yang diterima dari setiap pengguna/aplikasi dalam jendela waktu saat ini.

3. Strategi Penegakan:

4. Fitur Lanjutan:

5. Komunikasi dan Pemantauan:

Contoh Kode Pembatasan Laju API

1. Melacak batas dan jendela waktu (Python):

# Simulate storing API rate limit information retrieved from API documentation
rate_limit = 100  # Requests per hour
time_window = 3600  # Seconds in an hour

last_request_time = None

def make_api_request():
  global last_request_time

  # Check if within the time window and enough requests remaining (hypothetical)
  if last_request_time is None or (time.time() - last_request_time) >= time_window:
    # Make the API request
    last_request_time = time.time()
    # ... (API request logic)
  else:
    print("API rate limit reached, waiting for reset...")
    # Implement backoff strategy (see point 3)

# Example usage
make_api_request()

Contoh kode di atas menampilkan situasi di mana Anda menyimpan informasi batas laju yang diambil (permintaan dan jendela waktu), dan melacak waktu permintaan terakhir. Kode tersebut kemudian memeriksa apakah permintaan dapat dilakukan berdasarkan waktu yang tersisa dan permintaan yang diizinkan dalam jendela.

2. Memanfaatkan header respons API (Python):

import requests

def make_api_request():
  response = requests.get("https://api.example.com/data")
  if response.status_code == 429:  # Rate limit exceeded code
    # Extract rate limit information from headers (X-RateLimit-Remaining, X-RateLimit-Reset)
    # Implement backoff strategy (see point 3)
  else:
    # Process successful response
    # ...

Contoh kode di atas memeriksa kode status respons untuk kode kesalahan batas laju umum 429 dan mencoba mengekstrak informasi yang relevan dari header respons jika ditemukan.

Perbedaan yang Dirangkum Antara Throttling VS. Pembatasan Laju

Fitur Throttling Pembatasan Laju
Tujuan Mengelola aliran lalu lintas API untuk menjaga kinerja Mengontrol akses API untuk mencegah penyalahgunaan dan kelebihan beban
Mekanisme Secara dinamis menyesuaikan waktu respons berdasarkan lalu lintas Menetapkan batas keras pada permintaan per jendela waktu
Penegakan Memperlambat permintaan selama periode puncak (lebih fleksibel) Memblokir permintaan yang melebihi batas (lebih ketat)
Fokus Menjaga stabilitas dan kinerja Keadilan dan mencegah penyalahgunaan
Konfigurasi Ambang batas, jendela waktu, mekanisme respons Batas dan jendela waktu
Kasus Penggunaan Mencegah kelebihan beban selama lalu lintas puncak, memprioritaskan permintaan mendesak Melindungi terhadap serangan DoS, mengontrol penggunaan

Apidog - Permintaan Tanpa Batas untuk Menyempurnakan Aplikasi Anda

Satu-satunya hal yang menghentikan Anda untuk membuat API terbaik adalah keterbatasan alat Anda - sebagian besar alat API saat ini memiliki paywall. Jika Anda tidak membayar, Anda tidak bisa mendapatkan fitur-fitur penting untuk pengembangan API. Namun, satu alat pengembangan API melangkah lebih jauh untuk menyediakan layanan terbaik bagi pengembang.

apidog interface
button

Temui Apidog, alat pengembangan API all-in-one yang memfasilitasi setiap proses pengembangan API untuk seluruh siklus hidup API. Dengan Apidog, Anda dapat membuat API baru dan memodifikasi API yang sudah ada, dan melakukan pengujian, mock, dan dokumentasi untuk memastikan bahwa API Anda akan berjalan dengan sempurna.

Membangun API dengan Apidog

Dengan Apidog, Anda dapat membuat API sendiri. Ini berarti Anda juga dapat mengatur batas laju API Anda sendiri, dan memutuskan apakah Anda ingin me-throttle API Anda dengan bantuan pengkodean tambahan.

new api apidog

Mulailah dengan menekan tombol API Baru, seperti yang ditunjukkan pada gambar di atas.

add details new api apidog

Selanjutnya, Anda dapat memilih banyak karakteristik API. Pada halaman ini, Anda dapat:

Semakin banyak detail yang dapat Anda berikan pada tahap perancangan, semakin deskriptif dokumentasi API Anda, seperti yang ditunjukkan pada bagian selanjutnya dari artikel ini.

Pastikan juga untuk menyertakan apakah ada batasan laju yang diberlakukan pada API, karena pengguna akan memerlukan pengetahuan itu untuk bekerja dengan API.

Untuk memberikan bantuan dalam membuat API jika ini adalah pertama kalinya Anda membuatnya, Anda dapat mempertimbangkan untuk membaca artikel-artikel ini.

Setelah Anda menyelesaikan semua kebutuhan dasar untuk membuat permintaan, Anda dapat mencoba membuat permintaan dengan mengklik Kirim. Anda kemudian akan menerima respons di bagian bawah jendela Apidog, seperti yang ditunjukkan pada gambar di atas.

Antarmuka pengguna yang sederhana dan intuitif memungkinkan pengguna untuk dengan mudah melihat respons yang diperoleh dari permintaan. Penting juga untuk memahami struktur respons karena Anda perlu mencocokkan kode di sisi klien dan server.

Hasilkan Dokumentasi API Deskriptif dengan Apidog

Dengan Apidog, Anda dapat dengan cepat membuat dokumentasi API yang mencakup semua yang dibutuhkan pengembang perangkat lunak hanya dengan beberapa klik.

step by step process sharing api documentation apidog

Panah 1 - Pertama, tekan tombol Bagikan di sisi kiri jendela aplikasi Apidog. Anda kemudian akan dapat melihat halaman "Dokumen Bersama", yang seharusnya kosong.

Panah 2 - Tekan tombol + Baru di bawah Tidak Ada Data untuk mulai membuat dokumentasi API Apidog pertama Anda.

Pilih dan Sertakan Properti Dokumentasi API Penting

input api details and select api doc properties apidog

Apidog memberi pengembang opsi untuk memilih karakteristik dokumentasi API, seperti siapa yang dapat melihat dokumentasi API Anda dan mengatur kata sandi file, sehingga hanya individu atau organisasi terpilih yang dapat melihatnya.

Lihat atau Bagikan Dokumentasi API Anda

open share edit api documentation apidog

Apidog mengompilasi detail proyek API Anda ke dalam dokumentasi API yang dapat dilihat melalui URL situs web. Yang harus Anda lakukan adalah mendistribusikan URL sehingga orang lain dapat melihat dokumentasi API Anda!

Jika diperlukan lebih banyak detail, baca artikel ini tentang cara menghasilkan dokumentasi API menggunakan Apidog:

Kesimpulan

Throttling dan pembatasan laju adalah alat penting untuk mengelola akses API dan memastikan kelancaran operasi. Meskipun mereka berbagi tujuan umum untuk mencegah kelebihan beban, mereka berbeda dalam pendekatan mereka.

Pembatasan laju bertindak seperti penjaga gerbang yang ketat, menetapkan batas keras pada permintaan dalam jangka waktu. Ini memprioritaskan keadilan dan mencegah penyalahgunaan. Throttling, di sisi lain, berfungsi seperti sakelar peredup, secara dinamis menyesuaikan waktu respons berdasarkan lalu lintas. Ini memastikan stabilitas dan kinerja dengan menangani lonjakan permintaan dengan baik.

Memahami kekuatan dari setiap pendekatan memungkinkan penyedia API untuk membuat sistem kontrol akses yang kuat yang menyeimbangkan kebutuhan pengguna dengan kapasitas API, yang mengarah pada pengalaman yang aman dan berkinerja untuk semua orang.

Dengan Apidog, Anda tidak perlu khawatir tentang permintaan terbatas. Anda juga dapat mengimpor API yang ingin Anda pahami dan menganalisisnya menggunakan desain Apidog yang sederhana namun intuitif. Mulai perjalanan pengembangan API Anda dengan Apidog hari ini!

button

Explore more

Cara Menggunakan OpenAI Sora Secara Gratis: Panduan Lengkap untuk Microsoft Bing Video Creator

Cara Menggunakan OpenAI Sora Secara Gratis: Panduan Lengkap untuk Microsoft Bing Video Creator

💡Ingin alat Pengujian API hebat yang menghasilkan Dokumentasi API yang indah? Ingin platform Terintegrasi, All-in-One untuk Tim Pengembang Anda bekerja sama dengan produktivitas maksimum? Apidog memenuhi semua permintaan Anda, dan menggantikan Postman dengan harga yang jauh lebih terjangkau!tombol Model teks-ke-video mutakhir OpenAI, Sora, telah mengubah pembuatan konten yang dihasilkan AI dengan kemampuannya menciptakan video yang sangat realistis dari instruksi teks sederhana. Namun, biaya

3 June 2025

Apa itu Ollama? Cara Menginstal Ollama?

Apa itu Ollama? Cara Menginstal Ollama?

💡Ingin alat Pengujian API yang hebat yang menghasilkan Dokumentasi API yang indah? Ingin platform terintegrasi, All-in-One untuk Tim Pengembang Anda bekerja sama dengan produktivitas maksimum? Apidog memenuhi semua permintaan Anda, dan menggantikan Postman dengan harga yang jauh lebih terjangkau! button Lanskap kecerdasan buatan (AI) terus berkembang dengan kecepatan tinggi, dan Model Bahasa Besar (LLM) menjadi semakin kuat dan mudah diakses. Meskipun banyak orang berinteraksi dengan model

28 April 2025

Di Mana Unduh Swagger UI Bahasa Indonesia Gratis?

Di Mana Unduh Swagger UI Bahasa Indonesia Gratis?

Ingin Swagger UI dalam Bahasa Indonesia? Artikel ini menjelaskan mengapa tidak ada unduhan resmi gratis dan cara mengaktifkan terjemahan. Jelajahi fitur Swagger dan lihat mengapa Apidog adalah alternatif Swagger superior untuk desain, pengujian, dan dokumentasi API yang terintegrasi.

23 April 2025

Mengembangkan API dengan Apidog

Apidog adalah alat pengembangan API yang membantu Anda mengembangkan API dengan lebih mudah dan efisien.