一、业务背景
极智词元 Token 运营中心的目标,是在全国多地域建设一套可承载万级 QPS 的 Token 调度与分发系统,把"算力 + API 能力"封装成可按 Token 计量、可批量分发、可弹性扩容的标准化商品。
这背后有三个核心挑战:
- 高并发:单地域峰值 QPS 1万+,单日 Token 调度量百亿级
- 多模型:20+ 大模型异构共存,调用协议、限流策略、计费规则各不相同
- 多租户:B 端客户、渠道商、区域代理三种角色共存,权限、计费、监控要严格隔离
二、整体架构
┌──────────────────────────────────────────────┐
│ 客户端(多租户) │
│ B端客户 API │ 渠道商控制台 │ 区域代理 Web │
└───────────────┬──────────────────────────────┘
│ HTTPS / WSS
▼
┌──────────────────────────────────────────────┐
│ 接入层 (Nginx + API Gateway) │
│ - 统一鉴权 (JWT) │
│ - 限流熔断 (Sentinel / Sentinel-Go) │
│ - 灰度路由 │
└───────────────┬──────────────────────────────┘
│
▼
┌──────────────────────────────────────────────┐
│ 业务服务层 (Go / Spring Cloud) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 模型路由 │ │ 计费引擎 │ │ 配额中心 │ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 监控告警 │ │ 日志审计 │ │ 渠道结算 │ │
│ └──────────┘ └──────────┘ └──────────┘ │
└───────────────┬──────────────────────────────┘
│
▼
┌──────────────────────────────────────────────┐
│ 模型适配层 (Adapter Cluster) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ OpenAI │ │ Anthropic│ │ Google │ │
│ │ Adapter │ │ Adapter │ │ Adapter │ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ DeepSeek │ │ Qwen │ │ 文心/豆包│ │
│ │ Adapter │ │ Adapter │ │ Adapter │ │
│ └──────────┘ └──────────┘ └──────────┘ │
└───────────────┬──────────────────────────────┘
│
▼
┌──────────────────────────────────────────────┐
│ 算力层 (GPU 集群) │
│ - 极智词元自建算力池 (昇腾/H100/国产) │
│ - 第三方算力接入 (公有云/IDC) │
└──────────────────────────────────────────────┘
三、关键模块设计
1. 模型路由(Smart Router)
核心目标:根据策略自动选择最合适的模型。
type RoutingStrategy struct {
Primary string // 主模型
FallbackChain []string // 降级链
CostThreshold float64 // 成本阈值
LatencyLimit int // 延迟上限 (ms)
Region string // 就近地域
}
func (r *Router) Route(ctx context.Context, req *ChatRequest) (string, error) {
for _, model := range append([]string{r.Primary}, r.FallbackChain...) {
if r.isHealthy(model) && r.withinBudget(model) {
return model, nil
}
}
return "", errors.New("all models unavailable")
}
路由维度:
- 业务标签("客服场景"路由到便宜模型,"代码场景"路由到强模型)
- 成本阈值(超阈值自动切到低价模型)
- 延迟上限(超 SLA 自动切到就近节点)
- 健康检查(异常自动剔除)
2. 计费引擎(Billing Engine)
核心目标:实时、按 Token 维度精确计费。
type TokenUsage struct {
PromptTokens int
CompletionTokens int
Model string
TenantID string
Timestamp time.Time
}
func (b *BillingEngine) Calculate(usage TokenUsage) decimal.Decimal {
price := b.priceService.GetModelPrice(usage.Model)
cost := price.Mul(decimal.NewFromInt(int64(usage.PromptTokens + usage.CompletionTokens)))
// 实时扣减租户余额
b.accountService.Deduct(usage.TenantID, cost)
// 异步上报监控
b.metricsReporter.Report(usage, cost)
return cost
}
设计要点:
- Token 级别精确计量(prompt + completion 分开计费)
- 实时扣减 + 异步对账(双写一致性)
- 多租户隔离(每个租户独立账单)
- 渠道商分润自动结算
3. 配额中心(Quota Center)
type QuotaPolicy struct {
TenantID string
QPSLimit int // 每秒请求数
DailyTokenLimit int64 // 每日 Token 上限
MonthlyBudget decimal.Decimal // 月度预算
}
func (q *QuotaCenter) Check(ctx context.Context, tenantID string) error {
quota := q.getQuota(tenantID)
if q.isOverQPS(quota) {
return ErrRateLimited
}
if q.isOverDailyToken(quota) {
return ErrDailyQuotaExceeded
}
if q.isOverMonthlyBudget(quota) {
return ErrBudgetExhausted
}
return nil
}
四、性能压测数据
我们在单地域 8 核 16G 的标准网关节点上做了压测:
| 指标 | 数据 |
|---|---|
| 峰值 QPS | 12,500 |
| 平均响应延迟 | 87 ms |
| P99 延迟 | 245 ms |
| 模型切换耗时 | < 50 ms |
| 计费误差率 | 0.0000% |
多地域部署 + 自动故障转移后,整体可用性达到 99.99%。
五、上云建议
如果你正在做类似的 AI 资源调度平台,给三个建议:
- 网关先行:先把"统一鉴权 + 路由 + 计费"做扎实,业务自然就稳
- Token 是中心:所有监控、计量、计费都以 Token 为单位,别再用"次数"或"时长"这种粗粒度
- 多租户隔离要彻底:B 端客户、渠道商、终端用户的数据、计费、配额必须物理隔离
极智词元这套架构已经在生产环境跑了一年多,支撑了全国多个 Token 运营中心的稳定运行。
感兴趣可以去 www.jztoken.cn 看看他们是怎么把"Token 分发"做成标准产品的。