Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Does it load balance? #165

Open
srinathgnath opened this issue Apr 23, 2018 · 1 comment
Open

Does it load balance? #165

srinathgnath opened this issue Apr 23, 2018 · 1 comment

Comments

@srinathgnath
Copy link

Team,
Do you any documentation over Load balancing? If not, could you please give a high level flow.

Thanks

@Allon-Guralnek
Copy link
Contributor

Allon-Guralnek commented Apr 24, 2018

@srinathgnath Unfortunately we don't have documentation for it right now, but I'll be glad to give you a quick overview.

There are two load balancing mechanisms:

  1. Server-side load balancing done by Orleans. Orleans distributes load across the cluster using it's own methods, which you can read about here.

  2. Client-side load balancing done by Microdot for inter-service calls. Calls to other services are distributed across the various nodes of that server/cluster using a round-robin approach combined with an optional correlation-ID-based "sticky session", which means that multiple calls with the same correlation ID (a.k.a RequestID, settable via TracingContext.SetRequestID()) will always go to the same node of the target service to reduce the chances that Orleans tries attempts to create duplicate activations of the same grain in multiple hosts, which requires time to resolve. This is only a performance optimization, not a matter of correctness.

Feel free to ask more questions!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants