用户渠道与路由
用户渠道(UserChannel) 是对用户可见的一层供给抽象。每个用户渠道下挂载若干具体 渠道,并定义这组渠道的路由算法和倍率。
为什么需要用户渠道
它把「对外卖的供给」和「底层的上游接入」解耦:
- 你可以把多个上游渠道(不同账号、不同区域、不同质量)归到同一个用户渠道下,对外作为一种供给售卖;
- 也可以建多个用户渠道(如「标准」「高速」「便宜」),用不同倍率分层定价;
- API 密钥可以被限制只能使用特定用户渠道(管理 API 密钥)。
字段
| 字段 | 说明 |
|---|---|
| 名称 / 描述 | 对外展示 |
| 倍率(Multiplier) | 该用户渠道整体的计费倍率 |
| 路由算法(RoutingAlgorithm) | 在其下属渠道间选择上游的策略,默认 priority |
| 启用状态 | 关闭后其下所有渠道都不参与服务 |
路由算法
用户渠道下可能有多个能提供同一模型的渠道,网关按算法选择其一:
| 算法 | 行为 |
|---|---|
priority | 按渠道优先级选择(默认),高优先级优先 |
weight | 按权重做加权选择 |
| 轮询 | 在候选渠道间轮转,均摊流量 |
选择逻辑会综合渠道的 Priority、Weight 与启用状态。把主力上游设高优先级,备用上游设低优先级,可实现「主用 + 故障转移」的效果。
管理操作
| 操作 | 接口 |
|---|---|
| 列表 | GET /user-channels |
| 创建 | POST /user-channels |
| 更新 | PUT /user-channels/:id |
| 删除 | DELETE /user-channels/:id |
用户侧可通过 GET /api/user/catalog 查看自己可用的目录。
配置建议
- 简单场景:建一个默认用户渠道,所有上游渠道都挂在它下面,用
priority做主备; - 分层售卖:建多个用户渠道,配不同倍率,再用 API 密钥的「允许用户渠道」或分组控制谁能用哪层;
- 均摊压力:把多个等价上游放在一个用户渠道下,用
weight或轮询分流。
倍率如何与分组、渠道倍率叠加,见 计费体系。