最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ASP.NET?Core設(shè)置Ocelot網(wǎng)關(guān)限流

 更新時(shí)間:2022年04月08日 14:09:41   作者:暗斷腸  
這篇文章介紹了ASP.NET?Core設(shè)置Ocelot網(wǎng)關(guān)限流的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

1.限流(Rate Limiting)

很多時(shí)候?yàn)榱朔乐笵oS攻擊,我們會(huì)通過限流方式對上游請求進(jìn)行限制,以保護(hù)下游服務(wù)不會(huì)負(fù)荷過載,為客戶端提供高質(zhì)量的資源服務(wù)。在Ocelot限流項(xiàng)目示例中,通過APIGateway項(xiàng)目路由RateLimitOptions選項(xiàng)可以配置限流。對解決方案的示例APIServices項(xiàng)目Get方法進(jìn)行限流,文件配置具體代碼如下:

{
  "Routes": [
    {
      "DownstreamPathTemplate": "/api/values",
      "DownstreamScheme": "http",
      "DownstreamHostAndPorts": [
        {
          "Host": "localhost",
          "Port": 9001
        }
      ],
      "UpstreamPathTemplate": "/customers",
      "UpstreamHttpMethod": [ "Get" ],
      "RateLimitOptions": {
        //客戶端白名單。名單中的客戶端不會(huì)被限流。
        "ClientWhitelist": [],
        //是否啟用限流。
        "EnableRateLimiting": true,
        //限流時(shí)間(1s,5m,1h,1d)。在限流時(shí)間內(nèi)限制請求數(shù),需要等PeriodTimespan時(shí)間過去了,才能再次發(fā)起請求。
        "Period": "1s",
        //限流時(shí)間間隔,限流后多少秒后才可以再次發(fā)起請求。
        "PeriodTimespan": 3,
        //限制請求數(shù)。
        "Limit": 1
      }
    }
  ],
  //全局配置,所有下游服務(wù)都執(zhí)行如下限流配置
  "GlobalConfiguration": {
    "RequestIdKey": "OcRequestId",
    "AdministrationPath": "/administration",
    "RateLimitOptions": {
      //是否禁用X-Rate-Limit和Retry-After標(biāo)頭。
      "DisableRateLimitHeaders": false,
      //限流返回的消息。
      "QuotaExceededMessage": "Customize Tips!"
    }
  }
}

下面來介紹下RateLimitOptions選項(xiàng)幾個(gè)參數(shù):

  • ClientWhitelist:客戶端白名單。名單中的客戶端不會(huì)被限流。
  • EnableRateLimiting:是否啟用限流。
  • Period:限流時(shí)間(1s,5m,1h,1d)。在限流時(shí)間內(nèi)限制請求數(shù),需要等PeriodTimespan時(shí)間過去了,才能再次發(fā)起請求。
  • PeriodTimespan:限流時(shí)間間隔,限流后多少秒后才可以再次發(fā)起請求。
  • Limit:限制請求數(shù)。
  • DisableRateLimitHeaders:是否禁用X-Rate-Limit和Retry-After標(biāo)頭。
  • QuotaExceededMessage:限流返回的消息。
  • HttpStatusCode:限流時(shí)候,指定返回的HTTP狀態(tài)代碼。
  • ClientIdHeader:允許您指定應(yīng)用于標(biāo)識(shí)客戶端的標(biāo)頭。默認(rèn)情況下為“ClientId”。

2.項(xiàng)目演示

2.1APIGateway項(xiàng)目

添加Ocelot服務(wù)注入和Logging信息輸出:

public class Startup
{
    public Startup(IWebHostEnvironment env)
    {
        var builder = new Microsoft.Extensions.Configuration.ConfigurationBuilder();
        builder.SetBasePath(env.ContentRootPath)
                .AddJsonFile("appsettings.json")
                //add configuration.json
                .AddJsonFile("configuration.json", optional: false, reloadOnChange: true)
                .AddEnvironmentVariables();

        Configuration = builder.Build();
    }

    public IConfigurationRoot Configuration { get; }

    public void ConfigureServices(IServiceCollection services)
    {
        //輸出Logging信息;
        services.AddLogging(logging =>
        {
            logging.AddConsole();
            logging.AddDebug();
        });
        //添加Ocelot服務(wù);
        services.AddOcelot(Configuration);
    }

    public void Configure(IApplicationBuilder app)
    {
        //使用Ocelot;
        app.UseOcelot().Wait();
    }
}

2.2APIServices項(xiàng)目

項(xiàng)目添加一個(gè)Get方法,對應(yīng)APIGateway項(xiàng)目的路由上下游配置,具體代碼如下:

[Route("api/[controller]")]
public class ValuesController : Controller
{
    // GET api/values
    [HttpGet]
    public IEnumerable<string> Get()
    {
        return new string[] { "value1", "value2" };
    }
}

2.3項(xiàng)目運(yùn)行

輸入dotnet run --project 項(xiàng)目路徑\項(xiàng)目文件.csproj把兩個(gè)項(xiàng)目啟動(dòng)起來,通過在瀏覽器不斷刷新上游服務(wù)地址,會(huì)看到如下信息:

根據(jù)上述信息可以知道在1秒時(shí)間內(nèi),如果請求數(shù)超過路由配置限制數(shù),那么Ocelot網(wǎng)關(guān)就會(huì)直接返回429狀態(tài)碼和全局給客戶端,不會(huì)再轉(zhuǎn)發(fā)到對應(yīng)下游服務(wù)方法去,防止了客戶端惡意攻擊,保證了下游服務(wù)不會(huì)負(fù)荷過載!

到此這篇關(guān)于ASP.NET Core設(shè)置Ocelot網(wǎng)關(guān)限流的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何在ASP.NET Core應(yīng)用程序運(yùn)行Vue并且部署在IIS上詳解

    如何在ASP.NET Core應(yīng)用程序運(yùn)行Vue并且部署在IIS上詳解

    這篇文章主要給大家介紹了關(guān)于如何運(yùn)行Vue在ASP.NET Core應(yīng)用程序并且部署在IIS上的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-10-10
  • asp.net下經(jīng)典數(shù)據(jù)庫記錄分頁代碼

    asp.net下經(jīng)典數(shù)據(jù)庫記錄分頁代碼

    asp.net下經(jīng)典數(shù)據(jù)庫記錄分頁代碼...
    2007-04-04
  • ASP.NET MVC學(xué)習(xí)教程之Razor語法

    ASP.NET MVC學(xué)習(xí)教程之Razor語法

    這篇文章主要給大家介紹了關(guān)于ASP.NET MVC學(xué)習(xí)教程之Razor語法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-05-05
  • Web里URL空格的轉(zhuǎn)換方法

    Web里URL空格的轉(zhuǎn)換方法

    今天收到一個(gè)Bug修復(fù)的任務(wù),Bug為在頁面上輸入一個(gè)文件夾名包含空格,點(diǎn)擊該文件夾的URL后鏈接錯(cuò)誤。
    2013-05-05
  • asp.net CommunityServer中的wwwStatus

    asp.net CommunityServer中的wwwStatus

    最近不得不對這個(gè)論壇進(jìn)行研究,以適應(yīng)后面的發(fā)展,現(xiàn)在同事研究太吃力了,以后改些東西,估計(jì)又要...打開web項(xiàng)目中的communityserver.config發(fā)現(xiàn)一個(gè)有趣的地方。
    2009-03-03
  • ASP.NET MVC5驗(yàn)證系列之客戶端驗(yàn)證

    ASP.NET MVC5驗(yàn)證系列之客戶端驗(yàn)證

    這篇文章主要為大家詳細(xì)介紹了ASP.NET MVC5驗(yàn)證系列之客戶端驗(yàn)證,感興趣的小伙伴們可以參考一下
    2016-07-07
  • .Net6.0+Vue3實(shí)現(xiàn)數(shù)據(jù)簡易導(dǎo)入功能全過程

    .Net6.0+Vue3實(shí)現(xiàn)數(shù)據(jù)簡易導(dǎo)入功能全過程

    最近在用VUE做一個(gè)數(shù)據(jù)導(dǎo)入的功能,下面這篇文章主要給大家介紹了關(guān)于使用.Net6.0+Vue3實(shí)現(xiàn)數(shù)據(jù)簡易導(dǎo)入功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • asp.net驗(yàn)證碼的簡單制作

    asp.net驗(yàn)證碼的簡單制作

    當(dāng)用戶進(jìn)行注冊、登陸的時(shí)候都會(huì)遇到輸入驗(yàn)證碼的情況,那驗(yàn)證碼到底是怎么制作的,下面就為大家講解如何使用ASP.NET制作簡單的驗(yàn)證碼,感興趣的朋友可以參考一下
    2015-09-09
  • ASP.NET五步打包下載Zip文件實(shí)例

    ASP.NET五步打包下載Zip文件實(shí)例

    本篇文章主要介紹了ASP.NET五步打包下載Zip文件實(shí)例,現(xiàn)在分享給大家,也給大家做個(gè)參考。有需要的小伙伴可以參考下。
    2016-11-11
  • .net搜索查詢并實(shí)現(xiàn)分頁實(shí)例

    .net搜索查詢并實(shí)現(xiàn)分頁實(shí)例

    .net搜索查詢并實(shí)現(xiàn)分頁實(shí)例,需要的朋友可以參考一下
    2013-03-03

最新評論

永仁县| 凌云县| 普兰县| 如东县| 汉川市| 开平市| 耒阳市| 肥城市| 济源市| 南昌市| 赣州市| 额尔古纳市| 沙河市| 阜宁县| 安远县| 五家渠市| 甘谷县| 东城区| 凭祥市| 微山县| 抚宁县| 正安县| 长岛县| 夏河县| 阳东县| 喀喇| 赫章县| 建宁县| 家居| 广昌县| 彭水| 衡南县| 温泉县| 溆浦县| 屏东县| 弋阳县| 东莞市| 皋兰县| 乐平市| 茌平县| 雷州市|