Skip to content

接口限流

youlai-gin 内置基于 Redis 的 IP 限流中间件,用于防止恶意请求和系统过载。

使用方式

1. 全局限流

go
// main.go
import "youlai-gin/internal/middleware"

func main() {
    r := gin.New()
    
    // 全局限流:默认 10 req/s(实现见 internal/middleware/rate_limiter.go)
    r.Use(middleware.RateLimitByIP())
    
    r.Run(":8080")
}

限流规则

  • 计数窗口:1 秒
  • 阈值:默认每个 IP 10 次/秒
  • 实现方式INCR + EXPIRE,Redis 异常时自动放行避免影响可用性
  • 错误码:超限返回 HTTP 429

相关实现

  • internal/middleware/rate_limiter.go

基于 MIT 许可发布 · 由 ❤️ 和 ☕ 驱动 · 支持作者