![]() |
||
---|---|---|
.. | ||
etc | ||
include | ||
src | ||
test | ||
BSL.txt | ||
README.md | ||
mix.exs | ||
rebar.config |
README.md
EMQX Node Rebalance
emqx_node_rebalance
is a part of the node evacuation/node rebalance feature in EMQX.
It implements high-level scenarios for node evacuation and rebalancing.
Application Responsibilities
emqx_node_rebalance
application's core concept is a rebalance coordinator.
Rebalance сoordinator is an entity that implements the rebalancing logic and orchestrates the rebalancing process.
In particular, it:
- Enables/Disables Eviction Agent on nodes.
- Sends connection/session eviction commands to Eviction Agents according to the evacuation logic.
We have two implementations of the rebalance coordinator:
emqx_node_rebalance
- a coordinator that implements node rebalancing;emqx_node_rebalance_evacuation
- a coordinator that implements node evacuation.
EMQX Integration
emqx_node_rebalance
is a high-level application that is loosely coupled with the rest of the system.
It uses Eviction Agent to perform the required operations.
User Facing API
The application provides API (CLI and HTTP) to perform the following operations:
- Start/Stop rebalancing across a set of nodes or the whole cluster;
- Start/Stop evacuation of a node;
- Get the current rebalancing status of a local node.
- Get the current rebalancing status of the whole cluster.
Also, an HTTP endpoint is provided for liveness probes.
Documentation
The rebalancing concept is described in the corresponding EIP.
Contributing
Please see our contributing.md.