littlebot
Published on 2025-04-08 / 0 Visits
0

【源码】基于Go语言的PID限流系统

项目简介

本项目是基于Go语言的PID限流系统,通过监控系统的CPU使用率,运用PID控制算法动态调整系统资源分配,防止系统过载。适用于高并发场景,可依据系统负载动态调整请求处理策略,保障系统稳定性和性能。

项目的主要特性和功能

  1. 基于PID控制算法,依据系统CPU使用率动态调整资源分配策略,使系统负载稳定在设定阈值范围内。
  2. 监控CPU使用率,实时调整资源分配,避免系统过载。
  3. 动态调整请求处理策略,确保系统在高负载下稳定运行。
  4. 使用z-score算法过滤异常点,防止因CPU尖刺导致的瞬时限流。
  5. 支持Gin框架直接接入和原生limiter接入,便于集成到现有系统。
  6. 支持在业务运行中动态调整限流阈值和敏感度,适应不同业务需求。

安装使用步骤

  1. 确保系统安装了Go语言环境,并设置必要的依赖库。
  2. 使用Go编译器编译项目代码,生成可执行文件。
  3. 运行编译生成的可执行文件,启动PID限流系统。
  4. 根据项目需求,配置PID控制算法的参数,如阈值、PID参数等。
  5. 通过监控工具或日志输出,观察系统CPU使用率和资源分配情况,确保系统稳定运行在设定的阈值范围内。

高级用法

  1. 使用者可根据需要自定义PID参数(KP、KI、KD)。
  2. 在业务运行过程中,通过动态下发配置或其他方式动态调整限流阈值。
  3. 通过调整上下水位,控制限流的敏感度,避免误限。

效果测试

通过原生limiter接入后,对目标实例持续增加QPS发压(设定CPU利用率0.8),系统能够通过拒绝一定的请求,将实例的CPU使用率稳定在80% ~ 85%之间。

贡献与安全

许可证

本项目采用Apache-2.0许可证

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】