Cluster

OpenHub framework supports running in the cluster. 


  • load balancer (LB) is infrastructure system that routes incoming calls to appropriate cluster node. Load balancer checks/asks in repeated intervals each node for information about node's state to have information to which node routes incoming message. OpenHub framework offers several built-in services/URLs which can be used - see Spring Boot Actuator
  • database (DB) is common place for saving data for all nodes in the cluster. Database has the following benefits
  • each node (application server) is independent to another node. Common application code (such as util classes, converters, connectors, DAOs, ...) can be shared in the following way:
    • separated and alone JAR file shared via filesystem on the classpath
    • separated module shared via Maven dependency management to all applications (this option is prefered)
  • cache (also called memory grid) is common fast memory for caching and sharing data between OpenHub instances in the cluster. Static or mostly read-only data can be cached and some features needs to have common data over all cluster nodes, for example throttling.
  • scheduler runs scheduled jobs which can be started in two modes
    • job can run on each node independently to each other
    • job has to run only once, no matter on which node 
  • logs are usually saved into files on the shared filesystem to have log files in one place for searching. Apart from this can be all requests and responses saved into database.