API Microsoft Graph — регулирование (2023 г.)C#

Место общения программистов C#
Ответить
Anonymous
 API Microsoft Graph — регулирование (2023 г.)

Сообщение Anonymous »

Я работаю с API Microsoft Graph для обработки событий, поступающих от внешнего клиента/системы. Итак, в этой системе происходят изменения, события отправляются в очередь, а код, над которым я работаю, извлекает эти события из очереди, группирует их в пакеты по 20 штук, выполняя последующие действия в экосистеме Graph. На самом деле эти действия могут быть какими угодно, но самый простой сценарий, над которым я работаю, — это обновление некоторого значения поля в элементе списка SharePoint.
Итак, опять же, изменения происходят во внешней системе. в очередь, и мой код потребляет события из этой очереди, группируя их в пакеты по 20 запросов, каждый из которых представляет собой POST для обновления поля элемента списка SharePoint.
Технически можно сказать, что все работает нормально. Я принял во внимание рекомендации по пакетной обработке/регулированию (руководство по регулированию Microsoft Graph), и поэтому код обрабатывает 429 ответов, ожидая MAX(RETRY_AFTER), где RETRY_AFTER — это значение для этого заголовка ответа для каждый отдельный запрос в пакете. После ожидания код повторяет попытку обработки только неудачного запроса в этом пакете.
Это очень распространенный сценарий во многих системах, управляемых событиями. Когда события генерируются с низкой скоростью, все работает нормально. Даже если в очередь встанет пара тысяч событий, наверстывание упущенного не займет много времени. Однако когда производительность резко возрастает или, скажем, несколько десятков тысяч событий попадают в очередь, пропускная способность начинает значительно падать, в результате чего количество регулируемых запросов начинает увеличиваться.
I Мы также предпринимаем необходимые шаги, чтобы предотвратить масштабирование потребительской стороны решения таким образом, чтобы количество параллельных запросов Graph могло перегрузить Graph API. Я работаю максимум с 5 параллельными потребителями/пакетами.
И я также читал об ограничениях запросов для Graph (ограничения регулирования для конкретных служб Microsoft Graph) и SharePoint (избегайте регулируется или блокируется в SharePoint Online), а также сообщение Microsoft Graph API – регулирование 5-летней давности.
В своих тестах я вижу, что потребительский рейтинг составляет всего лишь 10. запросов в секунду из-за регулирования.
Мой вопрос:
Есть ли что-нибудь еще, что могло бы увеличить пропускную способность при применении изменений в Graph? Или следует считать 10 запросов в секунду или около того максимальным диапазоном и все?
PS: Я ищу что-то, что улучшило бы решение для обработки всплесков нагрузки. В идеале это не должно быть чем-то вроде удвоения, утроения или умножения инфраструктуры или лицензий на X-фактор. В идеале это было бы что-то вроде увеличения масштаба системы на короткий период времени (минуты), а затем обратного уменьшения.

Подробнее здесь: https://stackoverflow.com/questions/763 ... tling-2023
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»