Skip to content

Advanced Clustering

Brent Moen edited this page Jan 21, 2021 · 21 revisions

If cloud deployment, high availability, or improved message throughput is a goal, multiple NextGen Connect instances can be deployed with a single, shared database (Postgres, SQL Server, Oracle, MySQL or Amazon Aurora). This allows channel configurations and message history to persist in a separate shared location as nodes may be removed or added to the cluster.

This deployment method does not require a separate plugin and can be accomplished using the open-source distribution of Connect. However with the open-source distribution alone, there are several limitations from an administrative standpoint.

The Advanced Clustering Plugin - What It Does

The Advanced Clustering plugin is designed to ease the management of this method of deployment. Without the plugin, you will need to log into each node separately to deploy/start/stop channels or monitor server error messages. Channel deployment states are maintained in-memory on each server, not in the shared database. Furthermore, whenever a node in the cluster fails, any partially processed or queued messages will need to be manually reassigned to a new node in order to resume processing. The primary goal of the plugin is to automate the addition or recovery of failed cluster nodes and enable the NextGen Connect Administrator to act as a single user interface for a cluster of NextGen Connect instances.

From the NextGen Connect dashboard, this plugin allows you to:

  • Monitor the status of each server
  • Deploy/start/stop/pause channels across all servers at once
  • View message statistics totals for the entire cluster, or statistics for a particular server
  • View any errors that occurred across the cluster while deploying/starting/stopping channels

Behind the scenes, this plugin will:

  • Automate the recovery of a failed node by automatically resuming processing of any queued or unfinished messages from the failed server
  • Eliminate any manual steps required to bring a new node into the cluster by automatically deploying channels in the current state they have in the cluster
  • Ensure that polling connector types (File Reader, Database Reader, JavaScript Reader, etc) will only execute on a single node in the cluster, preventing duplicate messages from being polled
  • Ensure that only one node will execute the Data Pruner, eliminating unnecessary strain on the shared database

What It Does Not Do

  • It does not provide load balancing or manage a load balancer. You will need to configure a load balancer separately, whether in a cloud environment or on-prem deployment.
  • It does not eliminate the database as a single-point-of-failure (or as a performance bottleneck). It is recommended that you supply a shared database that is also highly available.
  • It does not allow deployment a channel to a specific node in the cluster ("Cattle not Pets")
  • It does not (yet) support no-downtime version upgrades using blue-green deployment. If this is a requirement, please let us know at connectsales@nextgen.com to help get this prioritized for addition in a future version :)

More Information

The plugin is available in the Gold subscription level. Contact connectsales@nextgen.com for more information.

Clone this wiki locally