1
votes

I've been studying the Azure documentation and the web for a while now and can't find any answer to my question: How is the internal service-to-service communication load balanced in Azure Service Fabric? I've read about load balancers, but they seem to be responsible for external traffic, so client-to-service communication. Is the naming service available in Service Fabric doing some kind of load balancing or round robin?

1
If it's a stateful service there's no load-balancing as the service proxy will hit the primary replica. For multiple stateless services, I'm pretty sure the service proxy factory has some round-robin style functionality - though I can't just find where I've read that!Oliver
Yea I'm thinking so too, but I can't find a single statement about it, which is really frustrating. If, by any chance, someone knows where this is described, please drop me the link, thanks!Simon

1 Answers

4
votes

In the source code, you can see that - in communication with stateless services, or secondary replicas of stateful services - for every cached communication client, a random endpoint is selected. The client is reused until it becomes invalid, due to service changes (crashes, moves). This makes me say it's not round robin, but more like session affinity.