Я работаю с 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
API Microsoft Graph — регулирование (2023 г.) ⇐ C#
Место общения программистов C#
-
Anonymous
1722084645
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. запросов в секунду из-за регулирования.
Мой вопрос:
[b]Есть ли что-нибудь еще, что могло бы увеличить пропускную способность при применении изменений в Graph? Или следует считать 10 запросов в секунду или около того максимальным диапазоном и все?[/b]
PS: Я ищу что-то, что улучшило бы решение для обработки всплесков нагрузки. В идеале это не должно быть чем-то вроде удвоения, утроения или умножения инфраструктуры или лицензий на X-фактор. В идеале это было бы что-то вроде увеличения масштаба системы на короткий период времени (минуты), а затем обратного уменьшения.
Подробнее здесь: [url]https://stackoverflow.com/questions/76333392/microsoft-graph-api-throttling-2023[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия