К сожалению, вы не можете передать несколько IP-адресов с помощью grpc.Dial(...)
, для этого требуется только один аргумент.
gRPC в Go имеет «экспериментальный» балансировщик нагрузки 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",
}))),
)