go
network_error
ai_generated
true
rpc错误:代码=不可用 描述=名称解析器错误:产生了零个地址
rpc error: code = Unavailable desc = name resolver error: produced zero addresses
ID: go/grpc-load-balancer-no-backends
80%修复率
84%置信度
0证据数
2024-12-10首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| 1.3 | active | — | — | — |
根因分析
gRPC负载均衡器解析器未返回后端地址,通常是由于DNS故障或服务发现问题。
English
The gRPC load balancer resolver returned no backend addresses, often due to DNS failure or service discovery issues.
解决方案
-
90% 成功率 Verify DNS resolution for the target hostname.
nslookup my-service.default.svc.cluster.local
-
85% 成功率 Use a custom resolver with fallback addresses.
resolver := manual.NewBuilderWithScheme("myresolver") resolver.InitialState(resolver.State{Addresses: []resolver.Address{{Addr: "10.0.0.1:50051"}}}) conn, _ := grpc.Dial("myresolver:///service", grpc.WithResolvers(resolver))
无效尝试
常见但无效的做法:
-
Hardcode a single backend address in the client.
70% 失败
Bypasses load balancing and defeats purpose.
-
Increase DNS cache TTL.
90% 失败
Does not fix missing A records.