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. 

Synchrony system properties (Data Center only)

The table below describes each property, and its suggested values. 

Property name Example value Required Description
synchrony.cluster.impl
Yes

This tells Synchrony which mode to run in. For Confluence Data Center this must be set to hazelcast-btf

cluster.listen.port 5701 Yes

This is Synchrony's Hazelcast port. If port 5701 is not available, choose a different port.

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 Yes Synchrony uses Aleph to communicate between nodes. This is the Aleph binding port.
cluster.join.type multicast Yes

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.multicast.group 224.2.2.3 If multicast If the cluster join type is multicast, specify an IP address for the multicast group, or use the default.
cluster.join.multicast.port 54327 If multicast If the cluster join type is multicast, specify a multicast port or use the default.
cluster.join.multicast.ttl 32 If multicast 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.
cluster.join.tcpip.members
If TCP/IP If the cluster join type is TCP/IP, this is a comma-separated list of IP addresses for each cluster node.
cluster.interfaces 127.0.0.1 Yes This is the network interface Synchrony will use to commnunicate between nodes.
synchrony.cluster.bind localhost
This is the Aleph binding address. This should be set to the same value as cluster.interfaces.  
synchrony.database.url
Yes 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
Yes This is the username of your Confluence database user.
synchrony.database.password
Yes This is the password of your Confluence database user.
synchrony.port 8091 Yes This is the HTTP port that Synchrony runs on. If port 8091 is not available, choose a different port.
synchrony.bind localhost Yes This is the network interface for Synchrony to bind to. This should be set to the same value as synchrony.cluster.bind.
synchrony.context.path /synchrony Yes This is the context path for Synchrony. There should be no need to change this.
synchrony.service.url
Yes This is the full URL of the load balancer you've configured Synchrony to run behind for example, http://<lb_host>:<lb_port><lb_context_path>. If this URL doesn't match the URL coming from a users' browser Synchrony will fail.
jwt.private.key
Yes This key is generated by Confluence. You can copy this key from the <local-home>/confluence.cfg.xml file on your first Confluence node. This key will be the same on all Confluence and Synchrony nodes.
jwt.public.key
Yes This key is generated by Confluence. You can copy this key from the <local-home>/confluence.cfg.xml file on your first Confluence node. This key will be the same on all Confluence and Synchrony nodes.
classpath
Yes

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>

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 18, 2018

Was this helpful?

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