Configuring Synchrony for Data Center

On this page

Still need help?

The Atlassian Community is here for you.

Ask the community

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:
<PATH_TO_SYNCHRONY_STANDALONE_JAR>:<JDBC_DRIVER_PATH>

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:

  • multicast
  • tcpip
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 cluster.interfaces.

Specify this property if you did not use the default value for cluster.interfaces.

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. 

Last modified on Oct 13, 2017

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.