负载均衡
除了基础的 failover 之外,GoZen 还支持多种 provider 选择策略。你可以为每个 profile 选择不同策略,并结合健康检查,根据可用性、延迟或成本来分配流量。
可用策略
Failover
按顺序尝试 provider,直到有一个成功。这是默认策略,适合主备场景。
{
"profiles": {
"default": {
"providers": ["primary", "backup"],
"strategy": "failover"
}
}
}
Round robin
把请求均匀分发到多个等价 provider。
{
"profiles": {
"balanced": {
"providers": ["provider-a", "provider-b", "provider-c"],
"strategy": "round-robin"
}
}
}
Least latency
优先选择最近响应时间最低的 provider。
{
"profiles": {
"fast": {
"providers": ["us-east", "us-west", "eu"],
"strategy": "least-latency"
}
}
}
Least cost
优先选择所请求模型下成本最低的 provider。
{
"profiles": {
"budget": {
"providers": ["cheap-provider", "premium-provider"],
"strategy": "least-cost"
}
}
}
健康感知路由
所有策略都可以与健康监控一起工作。启用 health_aware 后,不健康的 provider 会在恢复之前被自动跳过。
{
"profiles": {
"production": {
"providers": ["primary", "secondary", "tertiary"],
"strategy": "least-latency",
"health_aware": true
}
}
}
策略选择建议
- 优先可靠性时使用
failover - provider 可互换时使用
round-robin - 交互式或时延敏感场景使用
least-latency - 预算比速度更重要时使用
least-cost