Possible to get more information about load balancer mode? #1637
-
Hi there, would be possible to provide more info about the usage of load balancer? I tried reading the deployment guide and know it refers to the one of three Server ID solution described in the IETF draft. And I searched the "LoadBalancingMode" in source code files such as connection.c or binding.c or lookup.c etc, to learn how it's used. I'm not sure whether my understanding is correct - the load balancer is out of scope of the project?e.g. Developer should construct the loadbalancer service by-self, which receives, decides and transfers the data to specific quic servers according some rules such as server id? It would be great if there are more info or guidelines about it. Thanks again! Regards, Wilson |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
Hi Wilson! We don't currently have any load balancer implementation in the MsQuic repo, though I wouldn't call the load balancer completely out of scope. We just haven't had any time to actually put together some code for the load balancer here. I would accept a PR that implements the load balancer side of things (though we'd have to discuss design first). As far as where the code is, the key part is here. Essentially, when doing IP-based Server ID, we copy the IP address (or just suffix for IPv6) into the ServerID field. That is then used for all connections IDs created locally. I'd be happy to discuss more if you're interested. I have internal documentation on how the load balancer would be implemented. I could put this in a state that could be publicly shared if you'd be interested in implementing it. |
Beta Was this translation helpful? Give feedback.
Hi Wilson! We don't currently have any load balancer implementation in the MsQuic repo, though I wouldn't call the load balancer completely out of scope. We just haven't had any time to actually put together some code for the load balancer here. I would accept a PR that implements the load balancer side of things (though we'd have to discuss design first).
As far as where the code is, the key part is here. Essentially, when doing IP-based Server ID, we copy the IP address (or just suffix for IPv6) into the ServerID field. That is then used for all connections IDs created locally.
I'd be happy to discuss more if you're interested. I have internal documentation on how the load balancer woul…