This document describes the datanode services cluster, which includes the database cluster and Abiquo services cluster. The datanode services cluster is part of an Abiquo Distributed HA Cluster environment.
The database cluster will be a standard Galera cluster to store application data in MariaDB.
Abiquo uses the services, such as RabbitMQ and Redis, in communication between the API server and other platform components.
Datanode components
Component | Description |
MaxScale | Read/write splitting across all nodes in Galera, to write to only one node. |
MariaDB Galera | Synchronous multi-main cluster for MariaDB. |
HAproxy | Balancing across all Redis instances, but only main instance is active |
Redis | Stores volatile information such as tasks. |
Sentinel | Provides high availability for Redis. |
RabbitMQ | Queues for remote services. |
Zookeeper | Manages API leader selection (for more than one API server) |
Galera database cluster
MaxScale splits reads and writes across all nodes, so only one node will receive writes. Components that do not support MariaDB Galera cluster will use the VIP to access the MariaDB Galera cluster through MaxScale.
Datanode services cluster
The cluster has a virtual IP (VIP) that will be active on one node at a time only. For access to Redis, Abiquo components (API and RS) will use the VIP. All HAproxy instances balance across all Redis instances, but only the main instance is active.
RabbitMQ is a standard configuration that can be built as a cluster.
If we use more than one API server, we will configure Zookeeper. This service coordinates APIs for tasks with RS and periodic checks.