mirror of
https://github.com/element-hq/synapse.git
synced 2024-11-24 02:25:45 +03:00
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
2 changed files with 8 additions and 1 deletions
1
changelog.d/17776.doc
Normal file
1
changelog.d/17776.doc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Explain how load balancing works for `federation_sender_instances`.
|
|
@ -4368,7 +4368,13 @@ It is possible to scale the processes that handle sending outbound federation re
|
||||||
by running a [`generic_worker`](../../workers.md#synapseappgeneric_worker) and adding it's [`worker_name`](#worker_name) to
|
by running a [`generic_worker`](../../workers.md#synapseappgeneric_worker) and adding it's [`worker_name`](#worker_name) to
|
||||||
a `federation_sender_instances` map. Doing so will remove handling of this function from
|
a `federation_sender_instances` map. Doing so will remove handling of this function from
|
||||||
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
|
||||||
|
|
Loading…
Reference in a new issue