# rpc错误：代码=不可用 描述=所有子连接均处于瞬态故障状态

- **ID:** `go/grpc-unavailable-load-balancer`
- **领域:** go
- **类别:** network_error
- **验证级别:** ai_generated
- **修复率:** 80%

## 根因

gRPC客户端的负载均衡器无法连接到任何后端服务器，因为所有端点都不可达或健康检查失败。

## 版本兼容性

| 版本 | 状态 | 引入 | 弃用 |
|------|------|------|------|
| 1.21 | active | — | — |
| 1.22 | active | — | — |

## 解决方案

1. **Verify server health and restart any down instances.** (85% 成功率)
   ```
   // Check server status via health check endpoint
healthClient := grpc_health_v1.NewHealthClient(conn)
resp, err := healthClient.Check(ctx, &grpc_health_v1.HealthCheckRequest{Service: "myservice.MyService"})
   ```
2. **Use a different load balancing policy like round_robin with proper service discovery.** (90% 成功率)
   ```
   conn, _ := grpc.Dial("dns:///myservice:50051", grpc.WithDefaultServiceConfig(`{"loadBalancingPolicy":"round_robin"}`))
   ```

## 无效尝试

- **Recreating the client without changing server addresses.** — Same endpoints, same connectivity issue. (90% 失败率)
- **Setting a shorter dial timeout.** — Timeouts don't fix unreachable servers. (80% 失败率)
