Обновленная версия флагманской платформы разработки программного обеспечения Microsoft .NET 7, будет включать встроенные функции ограничения интенсивности обращений, защищающие приложения от перегрузки трафиком.
Подробную информацию Microsoft представила в сообщении, опубликованном в ее блоге. Ограничение числа обращений позволяет контролировать интенсивность доступа к ресурсу. Разработчик может знать, к примеру, что СУБД, к которой обращается приложение, способна безопасно обрабатывать 1000 запросов в минуту. В этом случае в приложении можно установить ограничение, которое разрешает выполнять не более тысячи запросов в минуту, отклоняя все, что поступает сверх этого.
В .NET 7 реализовано несколько алгоритмов ограничения интенсивности обращений, с помощью которых можно управлять потоком запросов. Сюда относятся ограничение параллелизма и числа одновременно выполняемых запросов; ограничение маркерной корзины, регулирование запросов приложений с использованием маркеров; лимит фиксированного окна со сбросом ограничений в начальную точку через определенный промежуток времени, и лимит скользящего окна, который аналогичен алгоритму фиксированного окна, но делит временную шкалу окна на сегменты.
Microsoft выпустила пакет Nuget System.Threading.RateLimiting, который содержит примитивы для записи ограничителей интенсивности обращений с использованием общих алгоритмов. Связующее программное обеспечение, ограничивающее обращения, входит в состав пакета Nuget Microsoft.Asp.NetCoreRateLimiting.
В настоящее время Microsoft собирает отзывы разработчиков об интерфейсах API .NET 7, реализующих ограничения. Для обращения к соответствующим API в пространстве имен System.Threading.RateLimiting предлагается использовать пакет Nuget System.Threading.RateLimiting с обратной связью в репозитории GitHub Runtime. Для обращения к связующему программному обеспечению следует использовать пакет Nuget Microsoft.AspNetCore.RateLimiting с обратной связью в репозитории GitHub AspNetCore.