All Products
Search
Document Center

API Gateway:Pembatasan Kecepatan

Last Updated:Jun 19, 2026

Kebijakan throttling mengontrol lalu lintas ke API LLM berdasarkan konsumsi token, jumlah permintaan, dan konkurensi. Aturan dapat dikonfigurasi berdasarkan consumer, header permintaan, parameter kueri, cookie, IP client, atau nama model. Batas global menyediakan perlindungan cadangan di seluruh API terhadap kelebihan beban dan penyalahgunaan.

Fitur

  • Cegah kelebihan beban sumber daya: Batasi permintaan berdasarkan consumer, header, parameter kueri, cookie, IP client, atau nama model untuk mencegah overload. Gabungkan dengan kebijakan caching guna meningkatkan performa.

  • Kontrol lalu lintas dinamis: Terapkan throttling per detik, menit, jam, atau hari untuk menjaga stabilitas dalam kondisi konkurensi tinggi.

  • Beberapa aturan pencocokan: Mendukung exact match, prefix match, regex match, dan any match untuk penargetan aturan yang fleksibel.

  • Beberapa mode throttling: Throttle berdasarkan konsumsi token, jumlah permintaan, atau konkurensi.

  • Kontrol model detail halus: Tetapkan ambang batas berbeda per nama model untuk melindungi sumber daya bernilai tinggi.

  • Batas global: Terapkan batas cadangan di seluruh API pada total konsumsi token, jumlah permintaan, dan konkurensi.

  • Cegah serangan berbahaya: Throttle consumer, header, parameter kueri, cookie, atau IP client tertentu untuk memblokir crawler dan penyalahgunaan otomatis.

Kasus penggunaan

  • Skenario konkurensi tinggi: Selama promosi e-commerce, batasi konsumsi token per periode waktu untuk mencegah panggilan frekuensi tinggi yang berbahaya serta memastikan stabilitas dan keadilan.

  • Panggilan layanan AI: Throttle panggilan ke API LLM Anda untuk mencegah penurunan layanan atau crash sistem akibat lonjakan lalu lintas.

  • Sistem multi-tenant: Tetapkan kuota terpisah per tenant untuk memastikan keadilan dan isolasi sumber daya.

  • Kontrol model detail halus: Tetapkan batas per model (misalnya, kuota berbeda untuk qwen-max dan qwen-plus) untuk melindungi sumber daya bernilai tinggi.

  • Proteksi lalu lintas global: Batasi total konsumsi token, jumlah permintaan, dan konkurensi di seluruh API.

  • Proteksi terhadap serangan berbahaya: Lindungi dari crawler, Serangan DDoS, dan penyalahgunaan API.

Prosedur

  1. Buka halaman Instances di AI Gateway Console. Di bilah menu atas, pilih wilayah tempat instans target Anda berada, lalu klik instance ID target.

  2. Di panel navigasi sebelah kiri, klik Model API, lalu klik API Name target untuk membuka halaman API Details.

  3. Klik Policies and Plug-ins, lalu aktifkan sakelar Throttling dan konfigurasikan parameter terkait.

Catatan Satu permintaan dapat mencocokkan maksimal 10 aturan secara bersamaan.

Kebijakan throttling

Setiap aturan terdiri dari Condition, Throttling rule, Time window, Limit, dan Limit unit. Seret aturan untuk mengubah urutannya. Klik Add untuk membuat aturan baru.

Parameter

Deskripsi

Throttling

Mengaktifkan atau menonaktifkan kebijakan throttling. Secara default nonaktif.

Condition

Dimensi untuk throttling. Opsi: By consumer, By request header, By request query, By request cookie, By client IP, dan By model.

Throttling rules

Bergantung pada kondisi yang dipilih, masukkan aturan pencocokan, nama parameter, dan konten pencocokan. Setiap dimensi dijelaskan di bawah ini.

Time window

Jendela waktu untuk throttling: Every second, Every minute, Every hour, atau Every day.

Limit

Ambang batas throttling.

Limit unit

Unit pengukuran: token, request count, atau concurrency.

By consumer

Throttle permintaan berdasarkan identitas consumer. Ideal untuk sistem multi-tenant.

  • Form items: Condition (By consumer) → Matching rule (exact match/prefix match/regex match/any match) → Consumer selection → Time window → Limit + Limit unit

  • Consumer selection: Pilih dari consumer yang sudah ada atau klik Create Consumer untuk menambahkan satu. Jika Anda memilih any match, tidak diperlukan consumer spesifik.

  • Contoh: Batasi setiap consumer hingga 1.000 token per menit.

Penting Untuk mengonfigurasi throttling berdasarkan consumer, Anda harus terlebih dahulu mengaktifkan consumer authentication.

By request header

Throttle permintaan berdasarkan bidang tertentu dalam header permintaan.

  • Form items: Condition (By request header) → Parameter name (Header field name) → Matching rule (exact match/prefix match/regex match/any match) → Match content → Time window → Limit + Limit unit

  • Parameter name: Wajib diisi. Masukkan nama bidang header yang akan dicocokkan.

  • Match content: Bidang ini tidak diperlukan jika Anda memilih any match.

  • Contoh: Untuk permintaan dengan header x-user-level bernilai beta, tetapkan batas 100 token per menit.

By request query

Throttle permintaan berdasarkan parameter kueri dalam URL permintaan.

  • Form items: Condition (By request query) → Parameter name (Query parameter name) → Matching rule (exact match/prefix match/regex match/any match) → Match content → Time window → Limit + Limit unit

  • Parameter name: Wajib diisi. Masukkan nama parameter kueri yang akan dicocokkan.

  • Match content: Bidang ini tidak diperlukan jika Anda memilih any match.

  • Contoh: Untuk permintaan dengan parameter kueri user_id=1, tetapkan batas 100 token per menit.

By request cookie

Throttle permintaan berdasarkan bidang tertentu dalam cookie permintaan.

  • Form items: Condition (By request cookie) → Parameter name (Cookie field name) → Matching rule (exact match/prefix match/regex match/any match) → Match content → Time window → Limit + Limit unit

  • Parameter name: Wajib diisi. Masukkan nama bidang cookie yang akan dicocokkan.

  • Match content: Bidang ini tidak diperlukan jika Anda memilih any match.

  • Contoh: Untuk permintaan yang berisi cookie dengan pengenal tertentu, tetapkan batas 100 token per menit.

By client IP

Throttle permintaan berdasarkan IP client. Mendukung IP individual maupun rentang IP.

  • Form items: Condition (By client IP) → IP address → Limit + Limit unit

  • IP address: Masukkan alamat IP (misalnya, 192.168.1.1) atau rentang CIDR (misalnya, 192.168.1.0/24). Untuk mencocokkan semua IP client, masukkan 0.0.0.0/0.

  • Contoh: Tetapkan konkurensi maksimum sebesar 50 untuk setiap IP client.

Catatan Throttling berdasarkan IP client memiliki konfigurasi yang disederhanakan dan tidak memerlukan pemilihan aturan pencocokan atau jendela waktu.

By model

Tetapkan ambang batas throttling terpisah untuk nama model tertentu. Cocok untuk layanan yang menggunakan beberapa model.

  • Form items: Condition (By model) → Matching rule (tetap pada exact match) → Model name → Limit + Limit unit

  • Model name: Wajib diisi. Masukkan nama model target yang akan di-throttle.

  • Limit unit: Mendukung token, request count, dan concurrency.

  • Contoh: Untuk model qwen-max, tetapkan batas 500 token per menit dan konkurensi maksimum 10.

Catatan Throttling berdasarkan model selalu menggunakan exact match. Jika Anda memerlukan pencocokan model yang lebih fleksibel, seperti prefix atau regex matching, gunakan kondisi "By request header" dan tentukan manual nama parameter sebagai x-higress-llm-model.

Batas global

Batas global adalah kebijakan cadangan yang berlaku untuk seluruh API, terlepas dari aturan berbasis kondisi.

  • Cara mengaktifkan: Di bagian Global limit, centang kotak Enable.

  • Form items: Time window (Every second/Every minute/Every hour/Every day) → Limit + Limit unit (token/request count/concurrency)

  • Tambahkan beberapa aturan: Klik Add untuk membuat beberapa aturan batas global dengan mode throttling berbeda.

  • Contoh: Untuk seluruh API, tetapkan maksimum 10.000 token per menit, 100 permintaan per menit, dan konkurensi maksimum 20.

Catatan Batas global adalah kebijakan cadangan yang melengkapi aturan standar dan dapat digunakan secara bersamaan. Throttling dipicu jika lalu lintas mencocokkan salah satu aturan.
  1. Konfirmasi konfigurasi Anda dan klik Save.

Aturan pencocokan

Kondisi By consumer, By request header, By request query, dan By request cookie mendukung empat aturan pencocokan berikut. Prioritas: exact match > prefix match > regex match > any match.

Aturan pencocokan

Deskripsi

Contoh

Exact match

Nilai harus persis sama.

Header x-user-level persis beta.

Prefix match

Nilai harus diawali dengan awalan yang ditentukan.

Header x-user-level diawali dengan vip.

Regex match

Nilai harus sesuai dengan ekspresi reguler yang ditentukan.

Header x-user-level sesuai dengan ^(gold|silver)$.

Any match

Mencocokkan nilai apa pun untuk dimensi yang diberikan. Tidak diperlukan konten pencocokan.

Berlaku untuk consumer apa pun.

Catatan Jika Anda mengonfigurasi beberapa aturan, permintaan akan di-throttle jika mencocokkan salah satu aturan tersebut. Kondisi By client IP dan By model menggunakan metode pencocokan tetap dan tidak memerlukan pemilihan aturan manual.

Unit batas dan mode

Untuk setiap aturan throttling, pilih unit batas yang sesuai dengan metode pengukuran berbeda:

Unit batas

Deskripsi

Kondisi yang berlaku

Token

Mengukur total token inbound dan outbound yang dikonsumsi.

Semua kondisi

Request count

Mengukur jumlah total permintaan.

Semua kondisi

Concurrency

Mengukur jumlah permintaan simultan.

Semua kondisi

Kebijakan throttling mendukung jendela waktu berikut, yang digunakan bersama unit batas:

Jendela waktu

Pembatasan kecepatan token

Throttling jumlah permintaan

Throttling konkurensi

Every second

Maksimum token per detik.

Maksimum permintaan per detik.

Every minute

Maksimum token per menit.

Maksimum permintaan per menit.

Every hour

Maksimum token per jam.

Maksimum permintaan per jam.

Every day

Maksimum token per hari.

Maksimum permintaan per hari.

(No time window)

Maksimum permintaan simultan.

Catatan

Pembatasan laju berbasis jendela waktu menggunakan jendela waktu tetap dengan Time to Live (TTL) tertentu untuk penghitungan. Untuk metode ini, setiap kombinasi dimensi pembatasan laju dan nilai pencocokan berkorespondensi dengan kunci pembatasan laju independen. Pengatur waktu untuk jendela dimulai saat data valid pertama kali dicatat untuk kuncinya. Jendela ini tidak dibagi berdasarkan batas waktu alami, seperti pukul 01.00 hingga 02.00, dan bukan jendela geser. Jendela secara otomatis direset setelah kedaluwarsa. Permintaan berikutnya tidak memperbarui waktu kedaluwarsa jendela saat ini. Misalnya, jika data pertama untuk kunci dengan pembatasan laju per jam dicatat pada pukul 01:23:10, jendelanya direset sekitar pukul 02:23:10, bukan pukul 02:00:00.

Catatan Throttling konkurensi tidak memerlukan jendela waktu. Anda dapat langsung menetapkan konkurensi maksimum.

Contoh konfigurasi

Contoh 1: Throttle berdasarkan token consumer dan konkurensi IP

Konfigurasikan dua aturan: batasi setiap consumer hingga 1.000 token per menit dan tetapkan konkurensi maksimum untuk setiap IP client sebesar 50.

No.

Condition

Matching rule

Parameter name/match content

Time window

Limit

Limit unit

1

By consumer

any match

Every minute

1000

token

2

By client IP

0.0.0.0/0

50

concurrency

Contoh 2: Throttle berdasarkan header permintaan

Tetapkan aturan throttling berbeda untuk nilai header berbeda:

No.

Condition

Parameter name

Matching rule

Match content

Time window

Limit

Limit unit

1

By request header

x-user-level

exact match

beta

Every minute

100

token

2

By request header

x-user-level

prefix match

vip

Every hour

5000

token

3

By request header

x-app-id

any match

Every minute

50

request count

Contoh 3: Batasi berdasarkan nama model

Tetapkan batas berbeda untuk model berbeda: batasi qwen-max hingga 500 token per menit dan konkurensi maksimum 10, serta batasi qwen-plus hingga 2.000 token per menit.

No.

Condition

Matching rule

Model name

Time window

Limit

Limit unit

1

By model

exact match

qwen-max

Every minute

500

token

2

By model

exact match

qwen-plus

Every minute

2000

token

3

By model

exact match

qwen-max

10

concurrency

Contoh 4: Gabungkan batas global dan batas consumer

Selain batas berbasis consumer, aktifkan batas global sebagai kebijakan cadangan:

Kebijakan throttling (Aturan Standar):

No.

Condition

Matching rule

Time window

Limit

Limit unit

1

By consumer

any match

Every minute

1000

token

Global Limit (Enable checkbox selected):

No.

Time window

Limit

Limit unit

1

Every minute

10000

token

2

Every minute

100

request count

3

20

concurrency

Catatan Batas global adalah kebijakan cadangan yang melengkapi aturan standar. Harus diaktifkan dan dikonfigurasi secara terpisah.

Contoh 5: Aturan multidimensi campuran

Konfigurasikan aturan throttling berdasarkan berbagai kondisi secara bersamaan:

No.

Condition

Parameter name

Matching rule

Match content/IP/model name

Time window

Limit

Limit unit

1

By consumer

exact match

consumer-001

Every minute

500

token

2

By request header

x-user-level

prefix match

vip

Every hour

10000

token

3

By request query

user_id

regex match

^[0-9]+$

Every minute

200

request count

4

By request cookie

session

any match

Every minute

100

request count

5

By client IP

192.168.1.0/24

30

concurrency

6

By model

exact match

qwen-max

Every minute

1000

token

FAQ

T: Berapa jumlah maksimum aturan throttling yang dapat saya konfigurasikan?

J: Satu permintaan dapat mencocokkan hingga 10 aturan secara bersamaan. Gabungkan aturan lintas dimensi sesuai kebutuhan, tetapi semakin sedikit aturan akan menghasilkan performa lebih baik.

T: Bagaimana interaksi antara beberapa aturan?

J: Aturan menggunakan logika OR—throttling dipicu ketika salah satu aturan cocok. Aturan dengan kondisi dan kunci pencocokan yang sama digabung menjadi satu grup aturan.

T: Apakah saya dapat menggunakan batas global dan aturan throttling standar secara bersamaan?

J: Ya. Batas global adalah cadangan yang berlaku untuk seluruh API tanpa membedakan kunci, sedangkan aturan standar memberikan kontrol detail halus per dimensi. Throttling dipicu jika salah satu batas terlampaui.

T: Apa perbedaan antara throttling berdasarkan model dan berdasarkan header permintaan?

J: Throttling berdasarkan model secara otomatis dikonversi menjadi exact match pada header x-higress-llm-model. Untuk pencocokan prefix atau regex, gunakan "By request header" dengan nama parameter x-higress-llm-model.

T: Apakah saya dapat menggabungkan unit batas token, jumlah permintaan, dan konkurensi?

J: Ya. Tambahkan beberapa aturan untuk kondisi yang sama dengan unit batas berbeda (misalnya, batas token per menit dan batas konkurensi maksimum untuk satu model). Mereka dihitung secara independen, dan throttling dipicu jika salah satu batas tercapai.

T: Mengapa tidak ada opsi aturan pencocokan dan jendela waktu saat throttling berdasarkan IP client?

J: Throttling IP client disederhanakan—masukkan alamat IP atau rentangnya dan sistem akan menangani pencocokan secara otomatis. Untuk menerapkan batas ke semua IP client, masukkan 0.0.0.0/0.

T: Apakah urutan aturan memengaruhi perilaku throttling?

J: Aturan mendukung pengurutan dengan drag-and-drop. Namun, karena aturan menggunakan logika OR (throttling dipicu jika salah satu aturan cocok), urutan tidak memengaruhi perilaku.

T: Berapa lama waktu yang dibutuhkan agar konfigurasi throttling yang diperbarui berlaku?

J: Perubahan biasanya berlaku dalam hitungan detik setelah sistem mendorong aturan baru ke bidang data gateway.

T: Seberapa akurat Pembatasan kecepatan dalam arsitektur terdistribusi?

J: Dalam sistem terdistribusi, penghitungan throttling mungkin memiliki sedikit penyimpangan. Jumlah permintaan yang diizinkan sebenarnya dapat berbeda dari batas yang dikonfigurasi tergantung pada volume permintaan, laju, dan latensi backend.