explain load balancing for `federation_sender_instances` (#17776)
Adding information on how the load is distributed for
`federation_sender_instances`.
Thx to @devonh for the information.
causal source:
c2e5e9e67c/synapse/config/_base.py (L946-L989)
### Pull Request Checklist
<!-- Please read
https://element-hq.github.io/synapse/latest/development/contributing_guide.html
before submitting your pull request -->
* [x] Pull request is based on the develop branch
* [x] Pull request includes a [changelog
file](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#changelog).
The entry should:
- Be a short description of your change which makes sense to users.
"Fixed a bug that prevented receiving messages from other servers."
instead of "Moved X method from `EventStore` to `EventWorkerStore`.".
- Use markdown where necessary, mostly for `code blocks`.
- End with either a period (.) or an exclamation mark (!).
- Start with a capital letter.
- Feel free to credit yourself, by adding a sentence "Contributed by
@github_username." or "Contributed by [Your Name]." to the end of the
entry.
* [x] [Code
style](https://element-hq.github.io/synapse/latest/code_style.html) is
correct
(run the
[linters](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#run-the-linters))
---------
Co-authored-by: Devon Hudson <devon.dmytro@gmail.com>
This commit is contained in:
parent
d4e3ad04cd
commit
8bbe66a9b9
|
@ -0,0 +1 @@
|
||||||
|
Explain how load balancing works for `federation_sender_instances`.
|
|
@ -4370,6 +4370,12 @@ a `federation_sender_instances` map. Doing so will remove handling of this funct
|
||||||
the main process. Multiple workers can be added to this map, in which case the work is
|
the main process. Multiple workers can be added to this map, in which case the work is
|
||||||
balanced across them.
|
balanced across them.
|
||||||
|
|
||||||
|
The way that the load balancing works is any outbound federation request will be assigned
|
||||||
|
to a federation sender worker based on the hash of the destination server name. This
|
||||||
|
means that all requests being sent to the same destination will be processed by the same
|
||||||
|
worker instance. Multiple `federation_sender_instances` are useful if there is a federation
|
||||||
|
with multiple servers.
|
||||||
|
|
||||||
This configuration setting must be shared between all workers handling federation
|
This configuration setting must be shared between all workers handling federation
|
||||||
sending, and if changed all federation sender workers must be stopped at the same time
|
sending, and if changed all federation sender workers must be stopped at the same time
|
||||||
and then started, to ensure that all instances are running with the same config (otherwise
|
and then started, to ensure that all instances are running with the same config (otherwise
|
||||||
|
|
Loading…
Reference in New Issue