I have implemented a server and client with Google's gRPC toolkit. While testing, I noticed that there was never more than a single TCP connection from the client to the server, regardless of how many Channel
instances I construct.
I am planning to use what Google calls "proxy load balancing" via HAProxy. Therefore, I need multiple connections from my clients (say, service A) to my servers (say, service B). If no more than one connection is created, then HAProxy chooses one service for that connection, and none of the other servers will ever see any load.
I have tried using ChannelOptions.MaxConcurrentStreams
both on the client side and server side (and both sides simultaneously), but without any luck. As mentioned, I've created multiple Channel
instances, to no avail. The only effective technique I've found is to create multiple processes, which isn't ideal for obvious reasons.
What can I do to fully enable Google's "proxy load balancing" scenario?