项目简介
本项目是基于Go语言的PID限流系统,通过监控系统的CPU使用率,运用PID控制算法动态调整系统资源分配,防止系统过载。适用于高并发场景,可依据系统负载动态调整请求处理策略,保障系统稳定性和性能。
项目的主要特性和功能
- 基于PID控制算法,依据系统CPU使用率动态调整资源分配策略,使系统负载稳定在设定阈值范围内。
- 监控CPU使用率,实时调整资源分配,避免系统过载。
- 动态调整请求处理策略,确保系统在高负载下稳定运行。
- 使用z-score算法过滤异常点,防止因CPU尖刺导致的瞬时限流。
- 支持Gin框架直接接入和原生limiter接入,便于集成到现有系统。
- 支持在业务运行中动态调整限流阈值和敏感度,适应不同业务需求。
安装使用步骤
- 确保系统安装了Go语言环境,并设置必要的依赖库。
- 使用Go编译器编译项目代码,生成可执行文件。
- 运行编译生成的可执行文件,启动PID限流系统。
- 根据项目需求,配置PID控制算法的参数,如阈值、PID参数等。
- 通过监控工具或日志输出,观察系统CPU使用率和资源分配情况,确保系统稳定运行在设定的阈值范围内。
高级用法
- 使用者可根据需要自定义PID参数(KP、KI、KD)。
- 在业务运行过程中,通过动态下发配置或其他方式动态调整限流阈值。
- 通过调整上下水位,控制限流的敏感度,避免误限。
效果测试
通过原生limiter接入后,对目标实例持续增加QPS发压(设定CPU利用率0.8),系统能够通过拒绝一定的请求,将实例的CPU使用率稳定在80% ~ 85%之间。
贡献与安全
许可证
本项目采用Apache-2.0许可证。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】