olc-python 是一个高性能的过载控制库,为 python 应用提供限流和过载保护能力
OLC (Overload Control Library)
一个强大的过载控制库,支持多种 Web 框架的限流和过载保护。
特性
- 🚀 高性能限流: 支持 QPS 限流、并发限流、配额限流等多种限流策略
- 🔌 框架适配器: 支持 FastAPI、Flask、Django 等主流 Web 框架
- 📦 按需安装: 使用 Poetry extras 实现依赖隔离,用户可按需安装适配器
- ⚙️ 灵活配置: 支持 从本地远端 等多种配置获取方式
- 🎯 精准匹配: 基于标签的请求匹配和分组限流
- 📊 统计监控: 内置统计功能,支持实时监控和告警
安装
用户安装
只安装核心库
如果你只需要核心限流功能,不使用任何框架适配器:
pip install olc
安装特定框架适配器
根据你使用的 Web 框架,选择安装对应的适配器:
# FastAPI 适配器
pip install olc[fastapi]
# Flask 适配器(未来支持)
pip install olc[flask]
# Django 适配器(未来支持)
pip install olc[django]
# 安装所有适配器
pip install olc[all]
使用 Poetry 安装
# 只安装核心库
poetry add olc
# 安装 FastAPI 适配器
poetry add olc[fastapi]
开发环境安装
前置要求
- Python >= 3.11
- Poetry >= 2.0.0
克隆项目
git clone <repository-url>
cd olc
安装开发依赖
# 安装所有依赖
poetry install --all-extras
运行测试
# 运行所有测试
python -m unittest discover
快速开始
FastAPI 示例
参考 FastAPI 示例。
文档
使用者手册
面向 OLC 用户,侧重安装、配置和使用方法:
- 快速开始 — 安装、集成和第一个限流示例
- 配置项详解 — 详细解释每个配置项的作用和用法
- 组策略配置指南 — 分组/策略概念、常用模式、实战场景
- 限流策略使用指南 — QPS/并发/配额/集群限流配置
- 准入控制指南 — 允许/拒绝/动态准入
- 自适应算法指南 — PID 算法配置与调优
开发者手册
面向项目贡献者,侧重架构设计和扩展开发:
- 架构概览 — 整体架构、核心流程、设计模式
- 模块详解 — 各模块内部实现和协作关系
- 扩展指南 — 适配器/限流器/算法/配置源扩展开发
- 贡献规范 — 开发环境、代码风格、测试、Git 工作流
- 配置参考 — 所有配置项的完整参考
架构
olc/
├── adapters/ # 框架适配器
│ ├── fastapi/ # FastAPI 适配器
├── admission/ # 准入控制
├── alg/ # 算法模块
├── bean/ # 数据模型
├── control/ # 控制逻辑
├── limit/ # 限流器
├── rule/ # 规则管理
└── utils/ # 工具函数
测试
项目包含完整的测试套件:
# 运行所有测试
pytest tests/ -v
# 运行适配器测试
pytest tests/adapters/ -v
# 运行覆盖率测试
pytest tests/ --cov=olc --cov-report=html
贡献
欢迎贡献代码!请遵循以下步骤:
- Fork 项目
- 创建特性分支 (
git checkout -b feature/amazing-feature) - 提交更改 (
git commit -m 'Add some amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 创建 Pull Request
联系方式
如有问题或建议,请提交 Issue 或 Pull Request。
Downloads
0
Total downloads (including clone, pull, ZIP & release downloads), updated by T+1.
Languages
Python99.16%
Lua0.84%