.NET 7.0在.NET Core Web API中实现限流

参考文档:https://blog.csdn.net/zls365365/article/details/133627445

文章目录

  • 安装NuGet包
  • 配置appsettings.json
  • 添加中间件
  • 测试结果

安装NuGet包

配置appsettings.json

//配置限流,IP限制适应于所有全局,规则为1分钟最多访问10次"IpRateLimiting":{"EnableEndpointRateLimiting":false,"StackBlockedRequests":false,"RealIpHeader":"X-Real-IP",//服务器背后是一个反向代理,如果你的代理服务器使用不同的页眉然后提取客户端IP X-Real-IP使用此选项来设置"ClientIdHeader":"X-ClientId",//取白名单的客户端ID。如果此标头中存在客户端ID并且与ClientWhitelist中指定的值匹配,则不应用速率限制。"HttpStatusCode":429,//限制状态码//"IpWhitelist": [ "127.0.0.1" ],"IpWhitelist":[],//IP白名单:支持Ip v4和v6"GeneralRules":[{"Endpoint":"*",//端点路径"Period":"1m",//时间段,例如1m,您可以使用以下期间类型之一:s, m, h, d。"Limit":10//调用限制}]}

#region注册AspNetCoreRateLimit限流组件builder.Services.AddMemoryCache();//下面的IpRateLimiting为限流策略的配置文件结点名称,可以配置多个策略builder.Services.Configure<IpRateLimitOptions>(builder.Configuration.GetSection("IpRateLimiting"));//添加对内存中的 IP 策略存储的支持builder.Services.AddSingleton<IIpPolicyStore,MemoryCacheIpPolicyStore>();builder.Services.AddSingleton<IRateLimitCounterStore,MemoryCacheRateLimitCounterStore>();builder.Services.AddSingleton<IRateLimitConfiguration,RateLimitConfiguration>();builder.Services.AddInMemoryRateLimiting();#endregion

添加中间件

app.UseIpRateLimiting();

测试结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1194512.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从零搭建安全微服务网关,Spring Cloud Gateway鉴权全解析

第一章&#xff1a;从零认识微服务网关鉴权体系 在现代微服务架构中&#xff0c;网关作为所有外部请求的统一入口&#xff0c;承担着路由转发、限流熔断、安全控制等关键职责。其中&#xff0c;鉴权体系是保障系统安全的核心环节。通过在网关层实现统一的身份验证与权限校验&am…

【Java单例模式终极指南】:20年架构师亲授7种实现方式的性能、线程安全与反序列化陷阱全解析

第一章&#xff1a;单例模式的核心原理与应用场景 单例模式是一种创建型设计模式&#xff0c;确保一个类在整个程序生命周期中仅存在唯一实例&#xff0c;并提供全局访问点。其核心在于控制实例化过程——通过私有化构造函数、静态私有实例变量以及公有静态获取方法三者协同实现…

基于51单片机自行车码表里程表霍尔测速时钟显示超速报警设计5(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于51单片机自行车码表里程表霍尔测速时钟显示超速报警设计5(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码 51单片机自行车码表霍尔测速里程计超速报警时钟5 产品功能描述&#xff1a; 本系统由STC89C52单片机核心、DS1302…

面试官最爱问的HashMap底层原理,一次性讲清楚所有核心细节

第一章&#xff1a;HashMap底层原理概述 HashMap 是 Java 集合框架中最常用、最核心的键值对存储结构之一&#xff0c;其设计目标是在平均情况下实现 O(1) 时间复杂度的插入、查找与删除操作。它基于哈希表&#xff08;Hash Table&#xff09;实现&#xff0c;内部采用数组 链…

基于51/STM32单片机无线多功能门铃留言录音视频监控安全门禁设计(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于51/STM32单片机无线多功能门铃留言录音视频监控安全门禁设计(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码51单片机自行车码表霍尔测速里程计超速报警时钟5 产品功能描述&#xff1a; 本系统由STC89C52单片机核心、DS130…

Unsloth部署GPT-OSS:开源模型本地化实战教程

Unsloth部署GPT-OSS&#xff1a;开源模型本地化实战教程 你是否也曾在尝试微调大模型时被漫长的训练时间、高昂的显存消耗卡住&#xff1f;有没有想过&#xff0c;其实可以用更轻量、更高效的方式完成本地化部署和训练&#xff1f;今天我们要聊的 Unsloth&#xff0c;正是为解…

7.4 进阶实战:使用 IaC 代码化管理你的 DevOps 流水线

7.4 进阶实战:使用 IaC 代码化管理你的 DevOps 流水线 1. 引言:流水线也是基础设施 传统 DevOps 中,CI/CD 流水线的配置散落在各个系统的 UI 界面中: Jenkins Job 配置在 Jenkins 界面 GitHub Actions 配置在 .github/workflows/ Argo CD Application 通过 kubectl apply…

c#进阶疗法 -jwt+授权

ASP.NET Core JWT 认证与授权实战指南 什么是 JWT&#xff1f; JWT&#xff08;JSON Web Token&#xff09;是一种基于 JSON 的开放标准&#xff08;RFC 7519&#xff09;&#xff0c;用于在各方之间安全地传输信息。JWT 可以被验证和信任&#xff0c;因为它是数字签名的。 JWT…

依赖版本打架怎么办?5个真实案例带你实战解决Maven冲突难题

第一章&#xff1a;依赖版本打架怎么办&#xff1f;5个真实案例带你实战解决Maven冲突难题 在实际开发中&#xff0c;Maven依赖冲突是Java项目常见的“隐性故障源”。不同库引入同一依赖的不同版本时&#xff0c;可能导致类找不到、方法不存在甚至运行时异常。通过分析和解决真…

Java Debug效率革命?飞算JavaAI一键修复器全面评测

Java开发过程中&#xff0c;Bug排查始终是影响开发效率的核心痛点。无论是新手面对控制台冗长报错日志的手足无措&#xff0c;还是资深开发者花费数小时排查隐藏的逻辑漏洞、依赖冲突&#xff0c;甚至是简单的语法疏漏&#xff0c;都在无形中消耗着开发人员的时间与精力。为验证…

如何在30分钟内完成Spring Boot 3与MyBatis-Plus的无缝对接?真相在这里

第一章&#xff1a;Spring Boot 3与MyBatis-Plus整合概述在现代Java后端开发中&#xff0c;Spring Boot 3以其自动配置、起步依赖和响应式编程支持等特性&#xff0c;成为构建微服务架构的首选框架。与此同时&#xff0c;MyBatis-Plus作为MyBatis的增强工具&#xff0c;在简化C…

单例被破坏?Spring Bean不是单例?——深入JVM类加载、反射、反序列化场景下的5大失效真相

第一章&#xff1a;单例模式的核心概念与设计哲学 单例模式&#xff08;Singleton Pattern&#xff09;是创建型设计模式中最基础且广泛应用的一种&#xff0c;其核心目标是确保一个类在整个应用程序生命周期中仅存在一个实例&#xff0c;并提供一个全局访问点。这种设计不仅节…

8.1 拒绝两眼一抹黑:日志、监控、告警三位一体的可观测性方法论

8.1 拒绝两眼一抹黑:日志、监控、告警三位一体的可观测性方法论 1. 引言:可观测性的三个支柱 在云原生时代,系统复杂度呈指数级增长。当生产环境出现问题时,如果缺乏可观测性,你就像在黑暗中摸索。 可观测性(Observability) 不是监控(Monitoring)的升级版,而是一个…

零售行业OCR应用案例:商品标签识别系统搭建全过程

零售行业OCR应用案例&#xff1a;商品标签识别系统搭建全过程 在零售行业&#xff0c;每天都有大量的商品需要录入系统、核对信息、更新库存。传统的人工录入方式不仅效率低&#xff0c;还容易出错。有没有一种方法&#xff0c;能快速准确地从商品标签上提取文字信息&#xff…

【企业级Excel导出黄金标准】:从5分钟到8秒——基于EasyExcel 3.0+自研缓冲池的千万级导出压测实录

第一章&#xff1a;企业级Excel导出性能瓶颈的根源诊断 在大型企业系统中&#xff0c;批量导出海量数据至Excel文件是常见需求&#xff0c;但随着数据量增长&#xff0c;导出操作常出现响应缓慢、内存溢出甚至服务崩溃等问题。这些问题背后往往隐藏着深层次的技术瓶颈&#xff…

Maven依赖冲突怎么破?资深工程师教你7种高效排查与隔离手段

第一章&#xff1a;Maven依赖冲突的本质与常见场景 在Maven项目构建过程中&#xff0c;依赖冲突是开发者频繁遭遇的问题之一。其本质源于Maven的“传递性依赖”机制与“最近路径优先”&#xff08;Nearest-First&#xff09;的依赖解析策略之间的交互。当多个路径引入同一依赖的…

3种高效Selenium登录方案曝光:自动点击不再被反爬拦截

第一章&#xff1a;Selenium模拟登录的核心挑战在自动化测试和数据采集场景中&#xff0c;Selenium 因其强大的浏览器操控能力成为模拟用户登录的首选工具。然而&#xff0c;实际应用中会面临诸多技术障碍&#xff0c;直接影响脚本的稳定性与成功率。动态内容加载 现代网页广泛…

JNI简单学习(java调用C/C++) - 实践

JNI简单学习(java调用C/C++) - 实践2026-01-21 12:21 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !i…

Java导出Excel慢如蜗牛?3个被忽略的JVM参数+2种零拷贝写入法,立竿见影提速17倍

第一章&#xff1a;Java导出百万级数据到Excel的性能挑战 在企业级应用中&#xff0c;将大量数据导出为 Excel 文件是常见的需求。然而&#xff0c;当数据量达到百万级别时&#xff0c;传统的导出方式往往会面临严重的性能瓶颈。Java 常用的 Apache POI 库虽然功能强大&#xf…

建议收藏】大模型推理技术详解:从显存管理到算法加速的全景指南

本文系统解析大模型推理技术的演进与优化&#xff0c;涵盖显存管理&#xff08;PagedAttention、分层KV缓存&#xff09;、注意力计算优化&#xff08;FlashAttention系列&#xff09;、调度与批处理&#xff08;PD分离架构&#xff09;、并行策略与MoE优化、算法加速&#xff…