Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Commit

Permalink
Add some cross references to worker documentation (#13974)
Browse files Browse the repository at this point in the history
Signed-off-by: Dirk Klimpel <[email protected]>
  • Loading branch information
dklimpel authored Sep 30, 2022
1 parent 3dfc4a0 commit 4490697
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 15 deletions.
1 change: 1 addition & 0 deletions changelog.d/13974.doc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add some cross references to worker documentation.
14 changes: 14 additions & 0 deletions docs/systemd-with-workers/workers/media_worker.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
worker_app: synapse.app.media_repository
worker_name: media_worker

# The replication listener on the main synapse process.
worker_replication_host: 127.0.0.1
worker_replication_http_port: 9093

worker_listeners:
- type: http
port: 8085
resources:
- names: [media]

worker_log_config: /etc/matrix-synapse/media-worker-log.yaml
28 changes: 13 additions & 15 deletions docs/workers.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,6 @@ listener" for the main process; and secondly, you need to enable redis-based
replication. Optionally, a shared secret can be used to authenticate HTTP
traffic between workers. For example:


```yaml
# extend the existing `listeners` section. This defines the ports that the
# main process will listen on.
Expand Down Expand Up @@ -129,7 +128,8 @@ In the config file for each worker, you must specify:
* The HTTP replication endpoint that it should talk to on the main synapse process
(`worker_replication_host` and `worker_replication_http_port`)
* If handling HTTP requests, a `worker_listeners` option with an `http`
listener, in the same way as the `listeners` option in the shared config.
listener, in the same way as the [`listeners`](usage/configuration/config_documentation.md#listeners)
option in the shared config.
* If handling the `^/_matrix/client/v3/keys/upload` endpoint, the HTTP URI for
the main process (`worker_main_http_uri`).

Expand Down Expand Up @@ -285,8 +285,9 @@ For multiple workers not handling the SSO endpoints properly, see
[#7530](https://github.com/matrix-org/synapse/issues/7530) and
[#9427](https://github.com/matrix-org/synapse/issues/9427).

Note that a HTTP listener with `client` and `federation` resources must be
configured in the `worker_listeners` option in the worker config.
Note that a [HTTP listener](usage/configuration/config_documentation.md#listeners)
with `client` and `federation` `resources` must be configured in the `worker_listeners`
option in the worker config.

#### Load balancing

Expand Down Expand Up @@ -326,7 +327,8 @@ effects of bursts of events from that bridge on events sent by normal users.
Additionally, the writing of specific streams (such as events) can be moved off
of the main process to a particular worker.

To enable this, the worker must have a HTTP replication listener configured,
To enable this, the worker must have a
[HTTP `replication` listener](usage/configuration/config_documentation.md#listeners) configured,
have a `worker_name` and be listed in the `instance_map` config. The same worker
can handle multiple streams, but unless otherwise documented, each stream can only
have a single writer.
Expand Down Expand Up @@ -410,7 +412,7 @@ the stream writer for the `presence` stream:
There is also support for moving background tasks to a separate
worker. Background tasks are run periodically or started via replication. Exactly
which tasks are configured to run depends on your Synapse configuration (e.g. if
stats is enabled).
stats is enabled). This worker doesn't handle any REST endpoints itself.

To enable this, the worker must have a `worker_name` and can be configured to run
background tasks. For example, to move background tasks to a dedicated worker,
Expand Down Expand Up @@ -457,8 +459,8 @@ worker application type.
#### Notifying Application Services

You can designate one generic worker to send output traffic to Application Services.

Specify its name in the shared configuration as follows:
Doesn't handle any REST endpoints itself, but you should specify its name in the
shared configuration as follows:

```yaml
notify_appservices_from_worker: worker_name
Expand Down Expand Up @@ -536,16 +538,12 @@ file to stop the main synapse running background jobs related to managing the
media repository. Note that doing so will prevent the main process from being
able to handle the above endpoints.

In the `media_repository` worker configuration file, configure the http listener to
In the `media_repository` worker configuration file, configure the
[HTTP listener](usage/configuration/config_documentation.md#listeners) to
expose the `media` resource. For example:

```yaml
worker_listeners:
- type: http
port: 8085
resources:
- names:
- media
{{#include systemd-with-workers/workers/media_worker.yaml}}
```

Note that if running multiple media repositories they must be on the same server
Expand Down

0 comments on commit 4490697

Please sign in to comment.