$ GRPC_GO_LOG_SEVERITY_LEVEL=INFO GRPC_GO_LOG_VERBOSITY_LEVEL=1000 go run greeter_client/main.go
INFO: 2018/05/07 11:31:44 parsed scheme: "blatux149k5z"
INFO: 2018/05/07 11:31:44 ccResolverWrapper: sending new addresses to cc: [{ 0 <nil>}]
INFO: 2018/05/07 11:31:44 base.baseBalancer: got new resolved addresses: [{ 0 <nil>}]
INFO: 2018/05/07 11:31:44 base.baseBalancer: handle SubConn state change: 0xc420172070, CONNECTING
WARNING: 2018/05/07 11:31:44 grpc: addrConn.createTransport failed to connect to { 0 <nil>}. Err :connection error: desc = "transport: Error while dialing dial tcp: missing address". Reconnecting...
INFO: 2018/05/07 11:31:44 base.baseBalancer: handle SubConn state change: 0xc420172070, TRANSIENT_FAILURE
2018/05/07 11:31:44 could not greet: rpc error: code = Unavailable desc = all SubConns are in TransientFailure, latest connection error: connection error: desc = "transport: Error while dialing dial tcp: missing address"
exit status 1
```
嗨,当您使用自定义平衡器并且没有可用的后端时,我对grpc-go的行为有疑问。我的理解是使用FailFast callopt,rpc应立即失败,而不是消耗整个RPC截止期限预算。但是,情况似乎并非如此。我已经修改了helloworld以使用手动平衡器 https://gist.github。com / aamitdb / 7df4bc5c6b8c0bf3b667023f3b779e bf尽管有FailFast,程序终止于`2018/05/07 11:07:03无法问候:rpc错误:代码= DeadlineExceeded desc =超出上下文截止时间。这似乎与弃用的解析程序包的行为不同。原因似乎是RPC正在等待 https://github.com/grpc/ grpc-go / blame / master / picker_ wrapper.go#L170但是大多数情况下,blockingCh被写入仅仅是为了响应子协会状态改变(但我们没有子外壳)。我是否遗漏了有关如何使用平衡器API的信息?或者期望我们总是至少用一个空切片调用NewAddresses(这似乎解决了它在堆栈中的某个地方尝试连接并快速失败)。当我传递一个空切片并获得所需的FailFast行为时附加一个运行日志。```$ GRPC_GO_LOG_SEVERITY_LEVEL = INFO GRPC_GO_LOG_VERBOSITY_LEVEL = 1000 go run greeter_client / main.go
INFO:2018/05/07 11:31:44解析方案:“blatux149k5z”
INFO:2018/05/07 11:31:44 ccResolverWrapper:向cc发送新地址:[{0 <nil>}]
INFO:2018/05/07 11:31:44 base.baseBalancer:得到新解析的地址: [{0 <nil>}]
信息:2018/05/07 11:31:44 base.baseBalancer:处理SubConn状态更改:0xc420172070,CONNECTING
警告:2018/05/07 11:31:44 grpc:addrConn.createTransport无法连接到{0 <nil>}。错误:连接错误:desc =“transport:拨打tcp时出错:丢失地址”。重新连接...
信息:2018/05/07 11:31:44 base.baseBalancer:处理SubConn状态更改:0xc420172070,TRANSIENT_FAILURE
2018/05/07 11:31:44无法问候:rpc错误:代码=不可用desc =所有SubConns都在TransientFailure中,最新连接错误:连接错误:desc =“transport:拨号时出错tcp:缺少地址”
退出状态1
```
谢谢,阿什温