编程语言
源代码探案系列之 .NET Core 跨域中间件 CORS
本文探讨了ASP.NET Core中的CORS中间件,介绍了其核心流程和部件,包括CorsPolicy、CorsService和CorsMiddleware。讨论了跨域请求的处理流程,如预检请求和非预检请求的处理方式,以及如何应用CORS规范中的Access-Control系列头部字段。文章从源代码和规范两个角度深入探讨跨域问题的背景、发展以及CORS的原理和应用,涵盖了简单请求和复杂请求的区别。文章通过对CORS中间件和CORS规范的讨论,帮助读者全面理解跨域问题。
编程语言
源代码探案系列之 .NET Core 限流中间件 AspNetCoreRateLimit
在今天这篇文章中,探讨了在分布式环境中限流中间件的重要性,引入了 AspNetCoreRateLimit 中间件,采用计数器算法实现限流功能,结合 IMemoryCache 和 IDistributedCache 实现基于内存和分布式缓存的持久化逻辑。详细介绍了 RateLimitProcessor 的实现,包括 ClientRateLimitProcessor 和 IpRateLimitProcessor,以及其依赖的IRateLimitStore 接口。另外,分析了 AsyncKeyLock 的实现,使用 SpinLock 实现了异步读写锁,提高了性能。最后,通过 RateLimitMiddleware 调用链路展示了中间件的整体执行过程。
编程语言
源代码探案系列之 .NET Core 并发限制中间件 ConcurrencyLimiter
本文是 “源代码探案系列” 的开篇,旨在通过深入分析源代码来构建结构化的知识体系。文章首先指出了程序员在从 “生手” 到 “熟练工” 转变后,仍需掌握原理性知识的重要性。接着,作者以ASP.NET Core 中的 ConcurrencyLimiter 中间件为例,探讨了并发控制的实现原理。文中详细解释了 IQueuePolicy 接口及其两种策略实现:QueuePolicy 和 StackPolicy,并通过代码示例阐释了它们的工作机制。文章还介绍了如何使用 ConcurrencyLimiterMiddleware 中间件来控制请求并发,并提供了具体的使用示例。最后,作者总结了学习并发控制中间件的重要性,并鼓励读者深入学习相关技术。1