Configuring Synchrony for Data Center
When you install Confluence Server, Synchrony is automatically configured to run as a seperate process on your server.
For Confluence Data Center, we give you full control by allowing you to set Synchrony up yourself. This gives you the flexibility to deploy Synchrony on the same nodes as Confluence, or in its own cluster with as many nodes as you need.
When you start Synchrony, you'll pass a number of system properties to tell Synchrony how to discover nodes in your cluster, where to find your Confluence database and more. System properties are set by passing the -D
flag to the Java virtual machine in which Synchrony is running.
Sensitive information (like database credentials) may be provided using environmental variables (rather than via the command line). Any dots (".") in variable names (identifiers) will need to be replaced with underscores ("_").
See Installing Confluence Data Center for a step by step guide to setting up Synchrony for Data Center.
Required Synchrony properties (Data Center only)
When you start Synchrony there are a number of properties that you need to provide.
Property name | Description |
---|---|
classpath | This is the path to the Synchrony jar file, followed by the path to your database driver. If you're running Synchrony on its own node, you'll need to copy your database driver to an appropriate location then provide the path to this location. For Linux the syntax is: For Windows, the syntax is: <PATH_TO_SYNCHRONY_STANDALONE_JAR>;<JDBC_DRIVER_PATH> |
cluster.join.type | This tells Hazelcast how to discover nodes. This can be the same as the join configuration for Confluence or different. Values are:
|
cluster.join.tcpip.members | If the cluster join type is TCP/IP, this is a comma-separated list of IP addresses for each cluster node. |
synchrony.bind | This is the network interface for Synchrony to bind to. Specify the public IP address or hostname of this Synchrony node. It could also be a private IP address - it should be configured to the address where Synchrony is reachable by the other nodes. |
synchrony.service.url | This is the URL that the browser uses to contact Synchrony. Generally this will be the full URL of the load balancer Synchrony will run behind plus the Synchrony context path, for example http://yoursite.com:8091/synchrony . Note that it does not end with /v1 , unlike the synchrony.service.url system property passed to Confluence. If this URL doesn't match the URL coming from a users' browser, Synchrony will fail. |
synchrony.database.url | This is the URL for your Confluence database. For example jdbc:postgresql://localhost:5432/confluence . You can find this URL in <local-home>/confluence.cfg.xml . |
synchrony.database.username | This is the username of your Confluence database user. |
synchrony.database.password | This is the password of your Confluence database user. |
Optional Synchrony system properties (Data Center only)
When you start Synchrony, we pass default values for the properties listed below. You can choose to override these values by specifying any of these properties when you start Synchrony.
Property name | Default | Description |
---|---|---|
cluster.listen.port | 5701 | This is Synchrony's Hazelcast port. Specify this property if you do not want to use port 5701 or if it is not available. As with the Confluence Hazelcast port (5801) you should ensure that only permitted cluster nodes are allowed to connect to Synchrony's Hazelcast port, through the use of a firewall and or network segregation. |
synchrony.cluster.base.port | 25500 | This is the Aleph binding port. Synchrony uses Aleph to communicate between nodes. Specify this property if you don't want to use the default. |
cluster.join.multicast.group | 224.2.2.3 | If the cluster join type is multicast, you can specify an IP address for the multicast group if you don't want to use the default. |
cluster.join.multicast.port | 54327 | If the cluster join type is multicast, you can specify a multicast port if you don't want to use the default. |
cluster.join.multicast.ttl | 32 | If the cluster join type is multicast, this is the time to live threshold. The default, 32 , means the scope is restricted to the same site, organization or department. Specify this property if you want to use a different threshold. |
cluster.interfaces | Defaults to the same value as synchrony.bind | This is the network interface Synchrony will use to communicate between nodes. Specify this property if you don't want to use the default, which uses the value of the required property synchrony.bind (IP address or hostname of the Synchrony node) |
synchrony.cluster.bind | Defaults to the same value as synchrony.bind | This is the Aleph binding address. This should be set to the same value as Specify this property if you did not use the default value for |
synchrony.port | 8091 | This is the HTTP port that Synchrony runs on. If port 8091 is not available, specify this property to choose a different port. |
synchrony.context.path | Defaults to the context path of synchrony.service.url | This is the context path for Synchrony. There should be no need to change this. |
Notes
If your users are unlikely to be able to get a WebSocket connection to Synchrony (for example your load balancer or reverse proxy does not support WebSockets) you can enable XHR fallback by passing the synchrony.enable.xhr.fallback
system property to Confluence. Note that this is a Confluence system property and must be passed to Confluence, it is not part of your start Synchrony command.
You will need to open Synchrony's port, as you can't use the built-in Synchrony proxy with Data Center. The synchrony.proxy.enabled
system property mentioned in the Confluence Server documentation has no effect in Data Center.