Skip to content

Feature Proposal: Use open-next-router (ONR) as routing core #2357

@onewesong

Description

@onewesong

背景

one-api 已经是非常好用的统一网关。这里提一个架构层建议:

是否考虑将 open-next-router (ONR) 作为可选路由内核(routing core)?

为什么值得考虑

1) 配置驱动、原子更新

ONR 受 Nginx 的原子配置理念启发,核心能力通过配置文件声明而不是复杂代码改动。

  • 路由策略、通道接入、权重/回退可配置化
  • 发布/回滚路径更清晰
  • 对运维和灰度更友好

2) 多模型通道接入成本更低

ONR 强调“通过简单配置接入多样模型渠道”,这和 one-api 的目标高度一致。

  • 新 provider 接入更标准化
  • 减少适配层重复代码
  • 对社区贡献者更友好(更易 PR)

3) 路由能力更容易扩展

作为独立 routing core,ONR 模块化后可更快演进:

  • 负载均衡 / 健康检查 / 失败切换
  • 按模型能力或成本做策略分流
  • 按租户/场景细粒度路由

4) 降低 one-api 主仓复杂度

将“复杂路由逻辑”与“网关管理能力”适度解耦,可以减少主仓心智负担。

建议的落地方式(低风险)

  1. 先做可选后端(optional backend),保持当前路由实现不变
  2. 增加开关:ROUTER_ENGINE=legacy|onr
  3. 先支持最小能力集:基础转发 + 回退 + 权重
  4. 逐步灰度,收集性能和稳定性指标后再扩面

参考

如果你们愿意,我也可以帮忙整理一份更具体的 PoC 接入草案(接口边界、配置映射、迁移路径)。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions