Antipola: Menggunakan ID kardinalitas tinggi dalam kebijakan Kuota

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Kebijakan kuota digunakan untuk menghitung jumlah permintaan yang diterima oleh proxy API. Kemampuan ini memungkinkan penyedia API menerapkan batas pada jumlah panggilan API yang dilakukan oleh aplikasi selama jangka waktu tertentu.

Kebijakan Kuota dapat menyertakan elemen identifier yang mengidentifikasi "bucket" kuota tempat setiap permintaan dihitung.

Antipola

Saat menggunakan kebijakan Kuota, jangan gunakan ID berkardinalitas tinggi.

Kardinalitas mengacu pada jumlah nilai data unik dalam satu set. ID dengan kardinalitas tinggi memiliki sejumlah besar kemungkinan nilai yang berbeda. ID dengan kardinalitas tinggi mencakup ID permintaan unik atau ID sesi yang berubah dengan setiap panggilan API.

Penggunaan ID berkardinalitas tinggi dapat secara signifikan mengurangi efektivitas penegakan kuota Anda.

Dampak

Menggunakan ID kardinalitas tinggi untuk elemen ID kebijakan kuota Anda menyebabkan:

  • Penerapan Kuota yang Tidak Efektif: Setiap ID unik diperlakukan sebagai penghitung terpisah. Jika setiap permintaan memiliki ID baru yang unik, sistem kuota Anda pada dasarnya akan membuat "bucket" baru untuk setiap panggilan API. Artinya, batas kuota keseluruhan Anda diukur berdasarkan penghitung sekali pakai individual daripada berdasarkan grup permintaan sebenarnya yang ingin Anda batasi, sehingga kebijakan tersebut tidak berguna untuk kontrol traffic.
  • Peningkatan Konsumsi Resource: Membuat dan mengelola sejumlah besar penghitung kuota unik memberikan tekanan yang tidak perlu pada platform Apigee, sehingga meningkatkan penggunaan resource dan potensi masalah performa.
  • Tantangan Pemantauan: Pemantauan dan pemahaman tren penggunaan API yang sebenarnya menjadi sulit jika data terfragmentasi di sejumlah besar ID unik. Anda tidak dapat lagi melihat aplikasi, developer, atau produk mana yang menggunakan resource API Anda.

Praktik terbaik

Pilih ID dengan kardinalitas rendah hingga sedang yang juga merepresentasikan pengelompokan yang stabil dan bermakna untuk penerapan kuota. Hal ini membantu Anda mengelola penggunaan API secara efektif dan mendapatkan insight tentang traffic Anda. Contohnya mencakup:

  • developer.app.name
  • client_id
  • apiproduct.name

Dengan ID yang sesuai, kebijakan Kuota Anda dapat mengelola traffic API secara lebih efektif, mencegah kelebihan penggunaan yang tidak disengaja, dan memberikan insight yang jelas tentang pola penggunaan.