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

  1. 兼容:0.1.x 的 application.yml 无需修改即可启动
  2. 推荐:把实例迁移到动态接口,方便后续热扩缩
  3. 新增:建议开启 store.type=file,防止重启丢配置

07 下一步(0.3.0 预告)

  • docker 镜像:针对现有的服务,提供docker 镜像打包方案,快速部署
  • 监控指标、告警通知 : 提供监控和告警服务

09 致谢 & 参与

  • 感谢 0.1.0 发布后小伙伴们提出的 issue
  • 欢迎大家继续开 issue / PR / 讨论,所有功能需求都会被认真考虑

再次贴仓库:https://github.com/Lincoln-cn/JAiRouter
点个 ⭐,不迷路!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐