Cluster
To improve data throughput and provide basic fault tolerance, you can configure multiple FlowForce Server instances to run as a cluster. The benefits of a cluster are described in the subsections below.
Load balancing
When high workloads overwhelm a standalone FlowForce Server instance, you can redistribute the processing to other instances within the cluster (known as "workers"). Setting up a cluster with one master and multiple workers allows you to fully utilize all licensed processor cores across your infrastructure.
Leaner resource management
The master instance continuously monitors job triggers and allocates queued tasks to workers or to itself, depending on your configuration. You can configure queue settings to assign specific jobs to designated queues. For example, you can configure the master machine to bypass job processing entirely. This frees up the master's resources, dedicating them exclusively to managing the cluster.
Scheduled maintenance of workers
You can restart or temporarily shut down any worker instance without interrupting service availability. Note that the master must remain online at all times; restarting or shutting down the master will interrupt cluster operations.
Reduced risk of service interruption
In the event of hardware failures, power outages, or network disruptions, the impact depends on the role of the affected machine:
•If a worker fails: Any active job instances running on that worker are lost. However, overall service remains online because subsequent jobs will be routed to a different worker (or to the master, if configured). The master logs the failed execution status so administrators can take corrective action.
•If the master fails: All cluster services are interrupted. New job instances cannot start until the master instance becomes available again.
Important points
•Cross-system clusters are not supported: A worker-master connection cannot be established between different operating system platforms.
•Version consistency is recommended: To avoid job execution issues, ensure all cluster members run the same version.
Terminology
The following terminology is used in conjunction with distributed execution and load balancing.
Server instance | A server instance is a running, licensed installation of FlowForce Server. For an instance to function, both the FlowForce Server service and the FlowForce Web Server service must be configured and running on the machine.
|
Cluster | A cluster is a group of multiple FlowForce Server instances running on different machines that communicate to execute jobs in parallel. A cluster consists of one master instance and one or more worker instances.
|
Master | A master is a FlowForce Server instance responsible for maintaining continuous service, tracking worker job status, and reporting execution outcomes.
For efficient load balancing, you can assign jobs to queues processed by workers, leaving the master to manage the service interface. If no workers are available, the master can be configured to handle the processing workload itself (see Queues).
|
Worker | A worker is a FlowForce Server instance dedicated entirely to executing jobs assigned by the master. It does not process local triggers or jobs.
|
Execution queue | A queue is a processor of jobs that controls the number of job instances that can be running at a time and the delay between runs. Through queue configuration, you can use server resources more efficiently.
You can create a queue inside a job (local queue) or define a queue as a standalone object (global queue). A local queue processes only the instances of the job in which the local queue has been configured. A global queue can process instances of one job and instances of different jobs.
Global queues provide a flexible mechanism to manage a server load on a single FlowForce machine as well as on a cluster (see below).
Local and global queues in a cluster environment (Advanced Edition)Setting up a cluster means that processing is distributed among cluster members: one master machine and one or more worker machines. For a global queue, you can select a cluster member to run on, which can be the master or any worker, only the master, or only a worker. With local queues, jobs can run only on the master machine and not on any other cluster member.
Security considerationsQueues utilize the same security access mechanism as any other FlowForce Server configuration objects. Namely, a user must have the Define execution queues privilege in order to create queues (see also Define Users and Roles). In addition, users can view queues and assign jobs to queues if they have appropriate container permissions (see also How Permissions Work). By default, any authenticated user gets the Queue - Use permission, which means they can assign jobs to queues.
To restrict access to queues, navigate to the container where the queue is defined and change the permission of the container to Queue - No access for the role authenticated. Next, assign the permission Queue - Use to any roles or users that you need. For more information, see Restrict Access to the /public Container.
To find out more about local and global queues, see Queues.
|