Skip to main content
Version: 10.0

Requirements

note

First read the general definitions to familiarize yourself with the following terms used in the cluster context.

The following components and technical requirements are needed to set up a webPDF cluster:

  • webPDF-Server: At least two webPDF servers (nodes) for executing the web services.
  • Gateway: Load balancer or proxy server, for load distribution and availability control of requests to the nodes.
  • Cache Server: Cache server for central storage of sessions and document metadata.
  • Shared File Storage: Network Attached Storage (NAS) for storing document metadata and sessions.
  • Shared Network: A common IP-based network (subnet) for communication between all components in the cluster using the UDP transport protocol.

The gateway, the cache server and the shared file storage must be provided and configured externally.

note

The setting and provision of these services is not part of this documentation and must be carried out in accordance with the instructions for the respective services used. This documentation only refers to the servers and how they are used in the configuration of webPDF.

Only when the servers or additional services have been provided can the setup of the cluster in the Admin Portal of the webPDF server be started.

Nodes

At least two webPDF servers are required as nodes for the cluster. These must first be [installed] as "stand-alone" servers, depending on the platform.

One of the installed servers (nodes) must later be assigned the coordinator role, while the other nodes are assigned the Member role.

tip

It is recommended to run the servers as Docker Container.

Gateway

A gateway (load balancer or proxy) is required to distribute the requests to the various nodes. This gateway provides the central point for the requests to the web services. The gateway is responsible for distributing the requests and monitoring the availability of the individual nodes.

The following products, for example, can be considered for use as a gateway (without any claim to completeness or a specific recommendation):

  • HAProxy
  • nginx (with load balancing configuration)
  • Firewalls in general, which have corresponding services

The gateway must be able to reach all nodes on the configured ports via the configured network.

tip

For performance reasons and to simplify the configuration, the nodes should be operated without SSL. With "SSL offloading" (or "SSL termination") on the gateway, appropriate TLS security can be configured for the nodes.

The gateway must be installed and configured in accordance with the documentation for the selected product.

Cache Server

A central cache server is required for the central storage of sessions and the documents in the session (document metadata).

In the current version, Redis is supported as a cache server. The Redis server must be configured on the nodes so that they can create and retrieve the session and document metadata there. The installation and configuration of the Redis server must be carried out in accordance with the Documentation.

Thanks to the central cache server, all nodes in the cluster have the same data and can therefore always answer all requests.

Shared File Storage

A central NAS (Network Attached Storage) is required to store the files that are linked to the session and the document metadata.

A NAS server with the NFS (Network File System) or SMB (Server Message Block) protocols is suitable for use in a cluster.

The use of cloud or S3 storage is also possible.

note

It is important that the storage provided enables shared file access and offers protocols that support parallel read/write operations from multiple clients.

Network communication

A shared IP-based network is required to set up (start) the cluster and for communication between the nodes in the cluster. In this network, the nodes carry out "peer-to-peer" communication based on the UDP (IP multicast) transport protocol (optionally also TCP). All nodes must be located in the same sub-network.

The node's communication is implemented based on a series of network communication protocols that provide transport, discovery, reliability, and fault detection services, as well as services for managing cluster membership.

The technical implementation is based on the open source toolkit JGroups.

Cluster communication stack

note

The external components such as gateway, cache server or shared file storage are not integrated into the cluster communication. Cluster communication only takes place between the nodes, i.e. the webPDF servers.

The coordinator must be the first node to start in the network in order to initiate the cluster. It attempts to start the cluster with its cluster configuration. If the cluster could be created, the node starts completely and is available for further communication (e.g. calling the web services).

When a member node starts, the node searches the network for an existing cluster and a coordinator in it that matches its cluster configuration. If a corresponding cluster is found, the node attempts to join this cluster. If this is successful, the member node receives the configuration from the coordinator node and starts with this configuration. Once the node is fully started, it is available for communication and calling the web services.