1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/duyanming-Viper

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 4.2 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 01.12.2024 05:46 8764046

Перевод текста на русский язык:

typeof(FirstMessageEventHandler));
                throw new Exception("Исключение потребления, демонстрация тестирования: сбой уведомления о потреблении из FirstMessageExceptionEventHandler!");
            }
        }
    }

🐎4. Промежуточное ПО

💥4.1. Кэширующее промежуточное ПО

💪Install-Package Anno.EngineData.Cache


Install-Package Anno.EngineData.Cache
   
using System;
using System.Collections.Generic;
using System.Text;
using Anno.EngineData;
using Anno.EngineData.Cache;


namespace Anno.Plugs.CacheRateLimitService
{
   public class CacheModule : BaseModule
   {
       /*
       Параметр 1: длина кэша
       Параметр 2: время жизни кэша
       Параметр 3: является ли время жизни кэша скользящим
       */
       [CacheLRU(5,6,true)]
       public ActionResult Cache(string msg)
       {
           Console.WriteLine(msg);
           return new ActionResult(true, null,null,msg);
       }
   }
}

🔰4.2. Ограничивающее поток промежуточное ПО

💄Install-Package Anno.EngineData.RateLimit


Install-Package Anno.EngineData.RateLimit
   
using System;
using System.Collections.Generic;
using System.Text;
using Anno.EngineData;
using Anno.RateLimit;

namespace Anno.Plugs.CacheRateLimitService
{
   public class LimitModule : BaseModule
   {
       /*
       Параметр 1: алгоритм ограничения потока — это токеновый бак или дырявое ведро
       Параметр 2: временной интервал ограничения потока в секундах
       Параметр 3: количество запросов, которое можно пропустить за единицу времени
       Параметр 4: ёмкость бака
       */
       [EngineData.Limit.RateLimit(LimitingType.TokenBucket,1,5,5)]
       public ActionResult Limit(string msg)
       {
           Console.WriteLine(msg);
           return new ActionResult(true, null, null, msg);
       }
   }
}

#dotnet dotnet publish "E:\gitProject\Anno\DCS\AppCenter\AppCenter.csproj" -c Release -r linux-x64 -o "E:\gitProject\Anno\DCS\AppCenter\bin"

#Описание файла конфигурации

{
  "Target": {
    "AppName": "traceWeb",--имя службы
    "IpAddress": "127.0.0.1",--адрес центра регистрации
    "Port": 6660,--порт центра регистрации
    "TraceOnOff": true--включение отслеживания цепочки вызовов
  },
  "Limit": {--ограничение потока
    "Enable": true,--включить ограничение потока
    "TagLimits": [--ограничения по тегам
      {
        "channel": "*",--канал
        "router": "*",--маршрутизатор
        "timeSpan": "10",--единица временного интервала в секундах
        "rps": 1,--количество допустимых запросов за временной интервал
        "limitSize": 2--размер буфера для использования в качестве буфера
      }
    ],
    "DefaultIpLimit": {--стратегия ограничения по умолчанию для IP
      "timeSpan": 1,
      "rps": 20,
      "limitSize": 200
    },
    "IpLimits": [--стратегии ограничения для IP (ipMatch ссылается на IPAddressRange)
      {
        "ipMatch": "0.0.0.1",
        "timeSpan": 1,
        "rps": 100,
        "limitSize": 100
      },
      {
        "ipMatch": "192.168.0.10 - 192.168.10.20",
        "timeSpan": 1,
        "rps": 100,
        "limitSize": 100
      }
    ],
    "White": [--белый список
      "0.0.0.1",
      "192.168.1.2",
      "192.168.2.18"
    ],
    "Black": [--чёрный список
      "0.0.0.2",
      "192.168.3.18"
    ]
  }
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/duyanming-Viper.git
git@api.gitlife.ru:oschina-mirror/duyanming-Viper.git
oschina-mirror
duyanming-Viper
duyanming-Viper
master