JAiRouter 0.2.0 更新啦:动态配置 + 限流熔断 + 持久化,真正生产可用的 AI 网关
JAiRouter 0.2.0 发布:生产级 AI 网关升级 本次更新将 JAiRouter 从实验性工具升级为生产可用 AI 网关,主要增强: 动态配置:通过 REST API 实现服务实例热更新,无需重启 流量控制:三层限流(服务/实例/IP)+ 熔断降级机制 稳定性提升:新增配置持久化(文件/内存双模式)兼容性:保留 0.1.x 配置格式,支持平滑升级 核心改进使网关具备处理突发流量、实例故
·
JAiRouter 0.2.0 更新啦:动态配置 + 限流熔断 + 持久化,真正生产可用的 AI 网关
如果你上次被我“25 MB 搞定 OpenAI 协议”吸引,那么这篇更新会让你直接把它搬进生产环境。
📎 官方仓库 & issue 直达
https://github.com/Lincoln-cn/JAiRouter
(star 不迷路)
文章目录
00 一句话总结
0.1.0 能跑,0.2.0 能扛。
这次我们把「静态配置」升级成「运行时热更新」,把「裸奔」升级成「限流 + 熔断 + 降级」,还顺手做了配置持久化。
一句话:JAiRouter 现在是面向生产的 AI 网关。
01 新增能力总览
模块 | 0.1.0 | 0.2.0 新增 |
---|---|---|
负载均衡 | ✅ 4 种策略 | ✅ 运行时权重热更新 |
限流 | ❌ | ✅ Token / Leaky / Sliding / WarmUp ✅ 服务级 & 实例级 & IP 级 |
熔断 | ❌ | ✅ 失败阈值 + 半开恢复 |
降级 | ❌ | ✅ Default / Cache 两种策略 |
配置持久化 | ❌ | ✅ 内存 + 文件双后端 |
动态 API | ❌ | ✅ RESTful CRUD 服务实例 |
健康检查 | ✅ TCP 探活 | ✅ TCP 探活 |
02 动态配置:不写 YAML,也能上线实例
2.1 接口速查表
动作 | 方法 | 路径 | 说明 |
---|---|---|---|
查实例列表 | GET |
/api/config/instance/type/{serviceType} |
|
查单个实例 | GET |
/api/config/instance/info/{serviceType} |
|
添加实例 | POST |
/api/config/instance/add/{serviceType} |
|
更新实例 | PUT |
/api/config/instance/update/{serviceType} |
|
删除实例 | DELETE |
/api/config/instance/del/{serviceType} |
全部返回统一包装
ApiResponse<T>
,前端一把梭。
2.2 实战:30 秒把 vLLM 新节点挂进网关
curl -X POST http://gateway:8080/api/config/instance/add/chat \
-H "Content-Type: application/json" \
-d '{
"name": "qwen3:14b",
"baseUrl": "http://10.0.0.31:9000",
"path": "/v1/chat/completions",
"weight": 3
}'
网关立即生效,无需重启。
03 限流体系:三层防护,不再怕“暴力提问”
3.1 维度矩阵
维度 | 算法 | 触发阈值示例 |
---|---|---|
服务级 | Token Bucket | 100 req/s 全局限流 |
实例级 | Leaky Bucket | 单实例 5 req/s |
IP 级 | Sliding Window | 单 IP 1 req/s |
预热 | WarmUp | 冷启动 30 s 内平滑递增 |
3.2 配置片段
rate-limit:
enabled: true
algorithm: token-bucket
capacity: 100
rate: 100
scope: service
client-ip-enable: true # 打开 IP 维度
04 熔断降级:GPU OOM 也能优雅拒绝
4.1 触发条件
- 连续失败
failureThreshold
次 → 开闸 - 熔断后进入
OPEN
状态,拒绝请求 - 经过
timeout
时间后进入HALF_OPEN
- 连续成功
successThreshold
次 → 恢复
4.2 降级策略
策略 | 说明 |
---|---|
default |
返回预设的 503 + 提示文案 |
cache |
返回最近一次成功的缓存结果 |
05 持久化:重启不丢配置
支持两种后端,一行切换:
store:
type: file # 或 memory
path: "config/" # 仅在 file 模式生效
file
:实时落盘,Docker/K8s 挂载即可持久化memory
:进程内,性能最高,适合无状态测试
06 升级指南:从 0.1.x → 0.2.x
- 兼容:0.1.x 的
application.yml
无需修改即可启动 - 推荐:把实例迁移到动态接口,方便后续热扩缩
- 新增:建议开启
store.type=file
,防止重启丢配置
07 下一步(0.3.0 预告)
- docker 镜像:针对现有的服务,提供docker 镜像打包方案,快速部署
- 监控指标、告警通知 : 提供监控和告警服务
09 致谢 & 参与
- 感谢 0.1.0 发布后小伙伴们提出的 issue
- 欢迎大家继续开 issue / PR / 讨论,所有功能需求都会被认真考虑!
再次贴仓库:https://github.com/Lincoln-cn/JAiRouter
点个 ⭐,不迷路!
更多推荐
所有评论(0)