Антипаттерн: использование идентификаторов с высокой кардинальностью в политиках квот

Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee
X.info

Политика квот используется для подсчета количества запросов, полученных API-прокси. Эта возможность позволяет поставщикам API устанавливать ограничения на количество вызовов API, выполняемых приложениями за определенный интервал времени.

Политика квотирования может включать элемент identifier , определяющий «категорию» квоты, в которую включается каждый запрос.

Антипаттерн

При использовании политики квот не следует применять идентификаторы с высокой кардинальностью.

Мощность множества — это количество уникальных значений данных в наборе. Идентификатор с высокой мощностью множества имеет большое количество различных возможных значений. К идентификаторам с высокой мощностью множества относятся уникальные идентификаторы запросов или идентификаторы сессий, которые изменяются при каждом вызове API.

Использование идентификаторов с высокой кардинальностью может значительно подорвать эффективность контроля за соблюдением квот.

Влияние

Использование идентификаторов с высокой кардинальностью в элементе идентификатора вашей политики квот приводит к следующим последствиям:

  • Неэффективное управление квотами: каждый уникальный идентификатор рассматривается как отдельный счетчик. Если каждый запрос имеет новый уникальный идентификатор, ваша система квот, по сути, создает новый «корзину» для каждого вызова API. Это означает, что ваш общий лимит квот измеряется по отдельным одноразовым счетчикам, а не по фактическим группам запросов, которые вы хотите ограничить, что делает политику бесполезной для управления трафиком.
  • Увеличение потребления ресурсов: Генерация и управление огромным количеством уникальных счетчиков квот создает излишнюю нагрузку на платформу Apigee, что приводит к увеличению использования ресурсов и потенциальным проблемам с производительностью.
  • Проблемы мониторинга: Отслеживание и понимание фактических тенденций потребления API становится затруднительным, когда данные фрагментированы по большому количеству уникальных идентификаторов. Вы теряете возможность увидеть, какие приложения, разработчики или продукты используют ресурсы вашего API.

Передовая практика

Выбирайте идентификаторы с низкой или средней кардинальностью, которые также представляют собой стабильную и значимую группировку для обеспечения соблюдения квот. Это поможет вам эффективно управлять использованием API и получать представление о вашем трафике. Примеры:

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

При наличии соответствующих идентификаторов ваша политика квотирования сможет более эффективно управлять трафиком API, предотвращать непреднамеренные перерасходы и предоставлять четкую информацию о моделях использования.