It’s a wrap for the Jumpmind Team at Shoptalk Spring and we could not have …
For most of our large clients where SymmetricDS is playing a mission critical role in their organization, our customers take advantage of SymmetricDS Pro’s out of the box capabilities to be load balanced. While SymmetricDS does a great job with hands off recovery in cases of hardware or infrastructure failure, most clients want as little downtime as possible. They simply don’t want a single point of failure in their synchronization scenario. The good news is, with SymmetricDS Pro, load balancing is simple and straight forward.
In many of these scenarios, SymmetricDS Pro is synchronizing a large server database with thousands of client databases. Most people are ok with the client databases being at risk of downtime due to client infrastructure, but the server is a different story. We see most people load balance the server by running two or more instances of SymmetricDS Pro on separate hardware, pointed to the same server database. Traffic is directed to one of the load balanced servers via some type of load balancer (mostly hardware based appliances).
In order to understand the setup, it’s helpful to understand the configuration that determines how SymmetricDS Pro nodes communicate with each other. In a typical synchronization scenario, one or more of the SymmetricDS Pro nodes are designated as the registration or root servers. These servers listen on a given port and URL for clients to request registration to the synchronization scenario. The port and URL they listen on are configured by setting the sync.url property on the server. This property is initially set during SymmetricDS Pro server setup, and can also be found by clicking “Configure”, “Parameters” from the Pro Management Console, or by looking at the SymmetricDS properties file that gets written in the “engines” subdirectory of your installation.
In our scenario from above, the three Symmetric Pro Servers on the right are the registration servers.
On the client side, the clients need to know the URL to connect to in order to attempt registration to the synchronization scenario. This is the URL from above on which the registration servers are listening. On the client side, this is called the registration url and is setup during the client install, and can also be found by clicking “Configure”, “Parameters” from the Pro Management Console, or by looking at the SymmetricDS properties file for the client.
Once the client attempts registration, the server sends the client it’s sync.url property, so the client knows where to reach out to the server for subsequent synchronization requests and work. The registration URL is only used during the registration process, not for go forward synchronization. So, the client uses the registration url to know where to go to register, and then after that uses the sync.url sent from the server during the registration process for all go forward synchronization work.
Knowing that background, setting up the load balanced setup from above is pretty simple. Here are the steps:
The result of the configuration is as follows:
In the next couple of weeks, we’ll add another couple of articles that discuss the following:
Stay tuned for more!