Anda sedang melihat dokumentasi Apigee dan Apigee Hybrid.
Lihat dokumentasi
Apigee Edge.
Apigee menyediakan kemampuan untuk mengonfigurasi jumlah permintaan yang diizinkan ke Proxy API untuk jangka waktu tertentu menggunakan kebijakan Kuota.
Antipola
Permintaan proxy API dapat ditayangkan oleh satu atau beberapa komponen Apigee terdistribusi yang disebut Pemroses Pesan. Jika ada beberapa Pemroses Pesan yang dikonfigurasi untuk menayangkan permintaan API, kuota kemungkinan akan terlampaui karena setiap Pemroses Pesan menyimpan "jumlah" permintaannya sendiri yang diproses.
Mari kita jelaskan hal ini dengan bantuan contoh. Pertimbangkan Kebijakan kuota berikut untuk proxy API:
<!-- /antipatterns/examples/1-6.xml --> <Quota name="CheckTrafficQuota"> <Interval>1</Interval> <TimeUnit>hour</TimeUnit> <Allow count="100"/> </Quota>
Konfigurasi di atas akan mengizinkan total 100 permintaan per jam.
Namun, dalam praktiknya, saat beberapa pemroses pesan melayani permintaan API, hal berikut terjadi:

Dalam ilustrasi di atas:
- Kebijakan kuota dikonfigurasi untuk mengizinkan 100 permintaan per jam.
- Permintaan ke Proxy API ditayangkan oleh dua Pemroses Pesan.
- Setiap Pemroses Pesan mempertahankan variabel jumlah kuotanya sendiri,
quota_count_mp1danquota_count_mp2, untuk melacak jumlah permintaan yang sedang diproses. - Oleh karena itu, setiap Pemroses Pesan akan mengizinkan 100 permintaan API secara terpisah. Efek bersihnya adalah total 200 permintaan diproses, bukan 100 permintaan.
Dampak
Situasi ini mengalahkan tujuan konfigurasi kuota dan dapat berdampak buruk pada server backend yang melayani permintaan.
Server backend dapat:
- Mengalami tekanan karena traffic masuk lebih tinggi dari yang diperkirakan
- Tidak merespons permintaan API yang lebih baru sehingga menyebabkan error 503
Praktik Terbaik
Pertimbangkan untuk menyetel elemen <Distributed> ke true dalam kebijakan Quota untuk memastikan bahwa penghitung umum digunakan untuk melacak permintaan API di semua Pemroses Pesan.
Elemen <Distributed> dapat ditetapkan seperti yang ditunjukkan dalam cuplikan kode di bawah:
<!-- /antipatterns/examples/1-7.xml --> <Quota name="CheckTrafficQuota"> <Interval>1</Interval> <TimeUnit>hour</TimeUnit> <Distributed>true</Distributed> <Allow count="100"/> </Quota>