Gateway Management Layer Components
The components of the Gateway Management Layer should be deployed once in a active-passive configuration setup. The Central Logger and the Global Throttle Manager need to have a single running instance at all times to ensure that the Core Engine operates without loss of functionality.
Therefore the Central Logger and Global Throttle Manager are deployed in fault tolerant configuration with one active engine (Central Logger instance or Global Throttle Manager instance) and one or more standby agents on a separate host servers. Such fault-tolerant engine setup can be configured in the cluster deployment descriptor (CDD) file by specifying the maximum number of one active agent for either of the agent classes and by creating multiple processing unit configurations for both the Global Throttle Manager and the Central Logger agent. Deployed standby agents maintain a passive Rete network. They do not listen to events from channels and they do not update working memory. The standby agents take over from the active instance in case it fails.
The Cache Cleanup agent of the Gateway Management Layer have no direct impact on the functionality of an operating API Exchange Gateway Engine instance. It is good practice that multiple versions of cache cleanup agents are deployed across host servers with one active instance running. If the running instance goes down, one of the other instances is started to regain full gateway functionality.
Example Deployment Model
Figure Deployment of Runtime Components In a Cluster illustrates the deployment of runtime components on the machines in a cluster environment for high availability.
It is good practice to have the runtime components deployed in a cluster:
- Core Engines - You must deploy all the instances of the Core Engines as Active Active engine instances.
- Cache Agents - Fault tolerance of Cache Agents is handled transparently by the object management layer. At least two Cache Agents should be deployed to provide the fault tolerance of the cached data.
- Cache Cleanup Agents - You must deploy multiple instances of the cache cleanup agents with one instance as Active (primary) and the other instances are deployed as Passive (secondary).
- Global Throttle Manager - You must deploy multiple instances of the Global Throttle Manager with one instance as Active (primary) and the other instances are deployed as Passive (secondary).
- Central Logger - You can deploy multiple instances of the Central Logger with one instance as Active (primary) and the other instances are deployed as Passive (secondary).
The figure Deployment of Runtime Components In a Cluster illustrates an example deployment model in which the components are deployed as follows:
- All the instances of the run time components of the gateway, except the Central Logger are deployed on the machines in one cluster (Cluster A). The two instances of the Central Logger are deployed on the machines in a second cluster (Cluster B).
- On machine A, the Apache server with Apache module instance 1 runs.
- On machine B, the Apache server with Apache module instance 2 runs.
- On machine C in Cluster A, the components are deployed as follows:
- On machine D in Cluster A, the components are deployed as follows:
- On machine E in Cluster A and Cluster B, the components are deployed as follows:
- On machine F in Cluster A and Cluster B, the components are deployed as follows:
- Second instance of the Global Throttle Manager runs as an Passive instance.
- Second instance of the Central Logger runs as an Active instance.
Note:
- All the run time components communicate using the Rendezvous channel. In the example deployment model as shown in Deployment of Runtime Components In a Cluster, it is assumed that all the machines running various instances of runtime components are in the same subnet.
- You can add more instances of the components as required. The Core Engine instances, if added, must be configured as Active for load balancing. The instances of Cache Cleanup Agent, Global Throttle Manager and Central Logger, if added, must be configured as Passive for fault tolerance.