YARP Docsv2.3
Docs/Trafic et fiabilité/Limitation de débit

Limitation de débit

Le reverse proxy peut être utilisé pour limiter le débit des requêtes avant qu'elles ne soient transférées vers la destination

Introduction

Le reverse proxy peut être utilisé pour limiter le débit des requêtes avant qu'elles ne soient transférées vers les serveurs de destination. Cela permet de réduire la charge sur les serveurs de destination, d'ajouter une couche de protection et de garantir l'application de politiques cohérentes dans l'ensemble de vos applications.

Cette fonctionnalité est disponible uniquement avec .NET 7 ou une version ultérieure

Valeurs par défaut

Aucune limitation de débit n'est appliquée aux requêtes tant qu'elle n'est pas activée dans la configuration de la route ou de l'application. Toutefois, le middleware de limitation de débit ( app.UseRateLimiter() ) peut appliquer un limiteur par défaut à toutes les routes, et cela ne nécessite aucune activation explicite dans la configuration. Exemple :

C#   services.AddRateLimiter(options => options.GlobalLimiter = globalLimiter);

Configuration

Les politiques de limiteur de débit peuvent être spécifiées par route via RouteConfig.RateLimiterPolicy et peuvent être liées depuis les sections Routes du fichier de configuration. Comme pour les autres propriétés de route, cela peut être modifié et rechargé sans redémarrer le proxy. Les noms de politique ne sont pas sensibles à la casse.

Exemple :

JSON{
   "ReverseProxy": {
      "Routes": {
         "route1" : {
             "ClusterId": "cluster1",
             "RateLimiterPolicy": "customPolicy",
             "Match": {
                "Hosts": [ "localhost" ]
             }
                   }
      },
      "Clusters": {
                   "cluster1": {
                      "Destinations": {
                         "cluster1/destination1": {
                            "Address": "https://localhost:10001/"
                         }
                      }
                   }
      }
   }
}
RateLimiter policies are an ASP.NET Core concept that the proxy utilizes. The proxy provides
the above configuration to specify a policy per route and the rest is handled by existing
ASP.NET Core rate limiting middleware.
RateLimiter policies can be configured in services as follows:
C#   services.AddRateLimiter(options =>
   {
          options.AddFixedWindowLimiter("customPolicy", opt =>
          {
                 opt.PermitLimit = 4;
                 opt.Window = TimeSpan.FromSeconds(12);
                 opt.QueueProcessingOrder = QueueProcessingOrder.OldestFirst;
                 opt.QueueLimit = 2;
          });
   });
Then add the RateLimiter middleware.
    C#
   app.UseRateLimiter();
   app.MapReverseProxy();
See the Rate Limiting docs for setting up your preferred kind of rate limiting.

Désactiver la limitation de débit

Spécifier la valeur disable dans le paramètre RateLimiterPolicy d'une route signifie que le middleware de limitation de débit n'appliquera aucune politique à cette route, pas même la politique par défaut.

Remarque

Cet article a été rédigé par l'auteur avec l'aide de l'IA. En savoir plus

Adapté de Microsoft Learn , sous licence CC BY 4.0 .