Add some example configurations for worker (#12492)

Signed-off-by: Dirk Klimpel <dirk@klimpel.org>
This commit is contained in:
Dirk Klimpel 2022-04-25 14:17:03 +02:00 committed by GitHub
parent a50fb411b3
commit a36a38b1ca
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 56 additions and 24 deletions

1
changelog.d/12492.doc Normal file
View file

@ -0,0 +1 @@
Add some example configurations for workers and update architectural diagram.

View file

@ -0,0 +1,8 @@
worker_app: synapse.app.generic_worker
worker_name: background_worker
# The replication listener on the main synapse process.
worker_replication_host: 127.0.0.1
worker_replication_http_port: 9093
worker_log_config: /etc/matrix-synapse/background-worker-log.yaml

View file

@ -0,0 +1,23 @@
worker_app: synapse.app.generic_worker
worker_name: event_persister1
# 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: 8034
resources:
- names: [replication]
# Enable listener if this stream writer handles endpoints for the `typing` or
# `to_device` streams. Uses a different port to the `replication` listener to
# avoid exposing the `replication` listener publicly.
#
#- type: http
# port: 8035
# resources:
# - names: [client]
worker_log_config: /etc/matrix-synapse/event-persister-log.yaml

View file

@ -1,12 +1,13 @@
worker_app: synapse.app.generic_worker worker_app: synapse.app.generic_worker
worker_name: generic_worker1 worker_name: generic_worker1
# The replication listener on the main synapse process.
worker_replication_host: 127.0.0.1 worker_replication_host: 127.0.0.1
worker_replication_http_port: 9093 worker_replication_http_port: 9093
worker_listeners: worker_listeners:
- type: http - type: http
port: 8011 port: 8083
resources: resources:
- names: [client, federation] - names: [client, federation]

View file

@ -138,20 +138,7 @@ as the `listeners` option in the shared config.
For example: For example:
```yaml ```yaml
worker_app: synapse.app.generic_worker {{#include systemd-with-workers/workers/generic_worker.yaml}}
worker_name: worker1
# 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: 8083
resources:
- names: [client, federation]
worker_log_config: /home/matrix/synapse/config/worker1_log_config.yaml
``` ```
...is a full configuration for a generic worker instance, which will expose a ...is a full configuration for a generic worker instance, which will expose a
@ -363,6 +350,12 @@ stream_writers:
events: event_persister1 events: event_persister1
``` ```
An example for a stream writer instance:
```yaml
{{#include systemd-with-workers/workers/event_persister.yaml}}
```
Some of the streams have associated endpoints which, for maximum efficiency, should Some of the streams have associated endpoints which, for maximum efficiency, should
be routed to the workers handling that stream. See below for the currently supported be routed to the workers handling that stream. See below for the currently supported
streams and the endpoints associated with them: streams and the endpoints associated with them:
@ -436,6 +429,12 @@ run_background_tasks_on: background_worker
You might also wish to investigate the `update_user_directory` and You might also wish to investigate the `update_user_directory` and
`media_instance_running_background_jobs` settings. `media_instance_running_background_jobs` settings.
An example for a dedicated background worker instance:
```yaml
{{#include systemd-with-workers/workers/background_worker.yaml}}
```
### `synapse.app.pusher` ### `synapse.app.pusher`
Handles sending push notifications to sygnal and email. Doesn't handle any Handles sending push notifications to sygnal and email. Doesn't handle any
@ -615,14 +614,14 @@ The following shows an example setup using Redis and a reverse proxy:
| Main | | Generic | | Generic | | Event | | Main | | Generic | | Generic | | Event |
| Process | | Worker 1 | | Worker 2 | | Persister | | Process | | Worker 1 | | Worker 2 | | Persister |
+--------------+ +--------------+ +--------------+ +--------------+ +--------------+ +--------------+ +--------------+ +--------------+
^ ^ | ^ | | ^ | ^ ^ ^ ^ | ^ | | ^ | | ^ ^
| | | | | | | | | | | | | | | | | | | | |
| | | | | HTTP | | | | | | | | | | HTTP | | | | | |
| +----------+<--|---|---------+ | | | | | +----------+<--|---|---------+<--|---|---------+ | |
| | +-------------|-->+----------+ | | | +-------------|-->+-------------+ |
| | | | | | | |
| | | | | | | |
v v v v v v v v
==================================================================== ======================================================================
Redis pub/sub channel Redis pub/sub channel
``` ```