使用golang gRPC客户端拨打多个IP地址
我有grpc服务器使用golang gRPC客户端拨打多个IP地址,go,grpc,Go,Grpc,我有grpc服务器192.168.1.12:8800和192.168.1.13:8800,我想用grpc连接它们。用ip列表拨,而不是服务器发现,我该怎么办 conn, err = grpc.Dial("192.168.1.12:8800,192.168.1.13:8800", grpc.WithInsecure()) 错误地 rpc error: code = Unavailable desc = all SubConns are in TransientFailure, latest co
192.168.1.12:8800
和192.168.1.13:8800
,我想用grpc连接它们。用ip列表拨
,而不是服务器发现,我该怎么办
conn, err = grpc.Dial("192.168.1.12:8800,192.168.1.13:8800", grpc.WithInsecure())
错误地
rpc error: code = Unavailable desc = all SubConns are in TransientFailure, latest connection error: connection error: desc = \"transport: Error while dialing dial tcp: too many colons in address 192.168.1.12:8800,192.168.1.13:8800
不幸的是,您无法使用
grpc.Dial(…)
传递多个IP地址,它只需要一个参数
Go中的gRPC确实有一个您应该能够利用的api
可以找到您需要编写的解析器示例。它创建了一个假解析器,可以在多个IP地址之间实现负载平衡
因此,一旦您有了这样的解析器,您想要的代码将如下所示:
conn, err := grpc.Dial(
"",
grpc.WithInsecure(),
grpc.WithBalancer(grpc.RoundRobin(resolver.NewPseudoResolver([]string{
"10.0.0.1:10000",
"10.0.0.2:10000",
}))),
)
我为此编写了一个库: 使用方便:
import u“github.com/Jille/grpc多解析器”
grpc.拨号盘(“multi:///192.168.1.12:8800,192.168.1.13:8800")
请注意开头的三个斜杠。您尝试过什么?你遇到了什么问题?包括您的代码,以及您收到的任何输出或错误。这正是我真正需要的!救命的答案!