WebApiThrottle限流框架

1、WebApiThrottle支持自定义配置各种限流策略。可以根据不同场景配置多个不同的限制,比如授权某个IP每秒、每分钟、每小时、每天、每周的最大调用次数。 这些限制策略可以配置在所有请求上,也可以单独给每个API接口去配置。

 //WebApiConfig 增加
            config.MessageHandlers.Add(new ThrottlingHandler()
            {
                Policy = new ThrottlePolicy(
                    perSecond: 1            //可选参数 每秒限制次数
                    , perMinute: 20         //可选参数 每分钟限制次数
                    , perHour: 200          //可选参数 每小时限制次数
                    , perDay: 1500          //可选参数 每天限制次数
                    , perWeek: 3000         //可选参数 每周限制次数
                    )
                {
                    IpThrottling = true,   //该值指示是否启用IP限制
                    ClientThrottling = true //该值指示是否启用客户端限制
                },
                Repository = new CacheRepository(),
                //QuotaExceededMessage = JsonConvert.SerializeObject(json.msg),
                QuotaExceededContent = (l, obj) =>  //违反限流事件
                {
                    //var json = new JsonResult { code = 0, msg = $"超出规定的频率了,{l}{obj}" };
                    var json=new  { code = 0, msg = $"超出规定的频率了,{l}{obj}" };//匿名Json
                    return (json);
                }
            });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值