PR feedback

This commit is contained in:
Matthew Hodgson 2016-08-19 19:16:55 +01:00
parent b7ffa0e2cd
commit 58d6c93103

View file

@ -20,7 +20,7 @@ To enable workers, you need to add a replication listener to the master synapse,
listeners: listeners:
- port: 9092 - port: 9092
bind_address: '' bind_address: '127.0.0.1'
type: http type: http
tls: false tls: false
x_forwarded: false x_forwarded: false
@ -28,6 +28,10 @@ To enable workers, you need to add a replication listener to the master synapse,
- names: [replication] - names: [replication]
compress: false compress: false
Under **no circumstances** should this replication API listener be exposed to the
public internet; it currently implements no authentication whatsoever and is
unencrypted HTTP.
You then create a set of configs for the various worker processes. These should be You then create a set of configs for the various worker processes. These should be
worker configuration files should be stored in a dedicated subdirectory, to allow worker configuration files should be stored in a dedicated subdirectory, to allow
synctl to manipulate them. synctl to manipulate them.
@ -65,12 +69,12 @@ For instance::
worker_pid_file: /home/matrix/synapse/synchrotron.pid worker_pid_file: /home/matrix/synapse/synchrotron.pid
worker_log_config: /home/matrix/synapse/config/synchrotron_log_config.yaml worker_log_config: /home/matrix/synapse/config/synchrotron_log_config.yaml
...is a full configuration for a synchotron worker instance, which will expose a ...is a full configuration for a synchrotron worker instance, which will expose a
plain HTTP /sync endpoint on port 8083 separately from the /sync endpoint provided plain HTTP /sync endpoint on port 8083 separately from the /sync endpoint provided
by the main synapse. by the main synapse.
Obviously you should configure your loadbalancer to route the /sync endpoint to Obviously you should configure your loadbalancer to route the /sync endpoint to
the synchotron instance(s) in this instance. the synchrotron instance(s) in this instance.
Finally, to actually run your worker-based synapse, you must pass synctl the -a Finally, to actually run your worker-based synapse, you must pass synctl the -a
commandline option to tell it to operate on all the worker configurations found commandline option to tell it to operate on all the worker configurations found
@ -80,12 +84,12 @@ in the given directory, e.g.::
Currently one should always restart all workers when restarting or upgrading Currently one should always restart all workers when restarting or upgrading
synapse, unless you explicitly know it's safe not to. For instance, restarting synapse, unless you explicitly know it's safe not to. For instance, restarting
synapse without restarting all the synchotrons may result in broken typing synapse without restarting all the synchrotrons may result in broken typing
notifications. notifications.
To manipulate a specific worker, you pass the -w option to synctl:: To manipulate a specific worker, you pass the -w option to synctl::
synctl -w $CONFIG/workers/synchotron.yaml restart synctl -w $CONFIG/workers/synchrotron.yaml restart
All of the above is highly experimental and subject to change as Synapse evolves, All of the above is highly experimental and subject to change as Synapse evolves,
but documenting it here to help folks needing highly scalable Synapses similar but documenting it here to help folks needing highly scalable Synapses similar