当前位置: 首页 > news >正文

Go语言API限流:保护后端服务

Go语言API限流:保护后端服务

1. 限流策略

API限流防止滥用和过载,保护后端服务的稳定性。

2. 限流实现

package ratelimit import ( "net/http" "sync" "time" "github.com/gin-gonic/gin" ) type RateLimiter struct { requests map[string][]time.Time mu sync.RWMutex limit int window time.Duration } func NewRateLimiter(limit int, window time.Duration) *RateLimiter { return &RateLimiter{ requests: make(map[string][]time.Time), limit: limit, window: window, } } func (rl *RateLimiter) Allow(ip string) bool { rl.mu.Lock() defer rl.mu.Unlock() now := time.Now() windowStart := now.Add(-rl.window) times := rl.requests[ip] validTimes := make([]time.Time, 0) for _, t := range times { if t.After(windowStart) { validTimes = append(validTimes, t) } } if len(validTimes) >= rl.limit { rl.requests[ip] = validTimes return false } rl.requests[ip] = append(validTimes, now) return true } func (rl *RateLimiter) Middleware() gin.HandlerFunc { return func(c *gin.Context) { ip := c.ClientIP() if !rl.Allow(ip) { c.JSON(http.StatusTooManyRequests, gin.H{"error": "rate limit exceeded"}) c.Abort() return } c.Next() } }

3. 总结

API限流是保护后端服务的重要手段,应根据服务能力设置合理的限流阈值。

http://www.jsqmd.com/news/812027/

相关文章:

  • 2025-2026年国内充电桩加盟品牌推荐:十大榜单专业评测高速服务区防排队痛点 - 品牌推荐
  • 基于向量数据库与LLM的开发者记忆增强系统:mnemo-cortex实战指南
  • 使用Taotoken后我的大模型API延迟与稳定性体感记录
  • 2025-2026年国内充电桩加盟品牌推荐:十大厂家停车场场景避免车位闲置的产品口碑好的评测加盟注意事项 - 品牌推荐
  • 2026钢结构材料优质供应商推荐榜:数据中心机房瓦楞板/数据中心瓦楞板/数据中心瓦楞钢板/数据中心钢板/数据库瓦楞板/选择指南 - 优质品牌商家
  • 2025-2026年国内手机膜工厂推荐:五家口碑评测切割膜精度痛点专业选择 - 品牌推荐
  • 科研AI技能库:构建模块化智能体的核心技术与实践
  • AI临床试验设计:优化患者招募与终点选择
  • 大模型的幻觉:它为什么会一本正经地胡说八道?
  • 3分钟快速上手:Windows电脑安装Android应用的终极指南
  • Ubuntu 20.04/22.04 内网环境PostgreSQL 14离线部署实战
  • 2026上海继承律师专业推荐榜:上海起诉离婚律师、上海遗产分割律师、上海遗产处理律师、上海遗产律师、上海遗嘱律师选择指南 - 优质品牌商家
  • Windows安卓应用安装器:终极免费方案,3分钟搞定电脑运行安卓应用!
  • ChatGPT Windows客户端实测报告:6大主流工具性能横评(响应延迟<380ms、内存占用≤1.2GB、API调用成功率99.7%)
  • 2026管道杀菌器优质品牌推荐指南:不锈钢杀菌器、大功率紫外灯、水处理杀菌器、浸没式杀菌器、消毒杀菌器、空气净化杀菌器选择指南 - 优质品牌商家
  • 2026年当前浙江混凝土泵弯管采购指南:河北越洋通管件制造有限公司实力解析 - 2026年企业推荐榜
  • 别再死记硬背了!用PDCA循环搞定ISO9001和ISO27001体系搭建(附实战流程图)
  • 收藏必备!小白程序员快速入门大模型:OpenClaw与Hermes深度解析
  • 2025-2026年国内手机膜工厂推荐:五大排行工厂专业评测户外使用防摔碎案例 - 品牌推荐
  • 小红书内容采集神器:XHS-Downloader 高效下载工具全攻略
  • 2025-2026年充电桩加盟品牌推荐:十大排名产品专业评测解决社区安装场景致场地协调难 - 品牌推荐
  • 为什么92%的DeepSeek部署项目在上线30天内遭遇Prompt注入?4个被忽视的配置陷阱全曝光
  • SWMM 5.2英文版安装与界面初探:为什么老手都推荐用原版?
  • 受限玻尔兹曼机(RBM)在非营利组织数据分析中的工程化实践
  • Swift开发者必备:OpenAIKit客户端集成与API调用实战指南
  • 【SaaS产品黏性断层预警】:基于172家B2B企业的行为数据,识别6个Lovability衰减临界点
  • 如何选工程管理系统?2026年5月推荐五款产品评测对比夜间施工成本超支问题 - 品牌推荐
  • 2025-2026年北京代理记账公司推荐:五家中小企业降本增效避免隐性收费的产品口碑好的评测注意事项 - 品牌推荐
  • 小驴西藏旅游网站(10018)
  • 2026地暖垫层水泥发泡设备靠谱推荐:水泥发泡施工机械/水泥发泡施工设备/水泥发泡机械设备/水泥发泡机设备/水泥发泡设备/选择指南 - 优质品牌商家