go
network_error
ai_generated
true
rpc error: code = Unavailable desc = name resolver error: produced zero addresses
ID: go/grpc-load-balancer-no-backends
80%Fix Rate
84%Confidence
0Evidence
2024-12-10First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| 1.3 | active | — | — | — |
Root Cause
The gRPC load balancer resolver returned no backend addresses, often due to DNS failure or service discovery issues.
generic中文
gRPC负载均衡器解析器未返回后端地址,通常是由于DNS故障或服务发现问题。
Workarounds
-
90% success Verify DNS resolution for the target hostname.
nslookup my-service.default.svc.cluster.local
-
85% success 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))
Dead Ends
Common approaches that don't work:
-
Hardcode a single backend address in the client.
70% fail
Bypasses load balancing and defeats purpose.
-
Increase DNS cache TTL.
90% fail
Does not fix missing A records.