Clustering Connections
CybusMQ clustering connection improvements for reliable message delivery and high throughput between broker nodes.
CybusMQ features optimized inter-node clustering connections that deliver reliable message preservation and high throughput. This ensures consistent communication between broker nodes even under challenging network conditions.
In a CybusMQ cluster, broker nodes communicate with each other to route messages between MQTT clients connected to different nodes. The clustering connection system handles the reliable transfer of messages over TCP connections between nodes.
How It Works
Sender Architecture
CybusMQ uses the following components to send messages to peer nodes:
Queue Process: Continuously receives messages from MQTT sessions and stores them in a queue.
Sender Process: Handles TCP send operations with configurable timeouts.
This separation allows the sender process to use longer timeout settings without blocking message collection from MQTT sessions. If the connection is lost, the queue process continues collecting messages, preventing message loss when the queue is properly sized.
Connection recovery uses an incremental backoff time for reconnection attempts.
Receiver Architecture
The receiver side uses a pool of router processes to handle incoming messages from peer nodes. This pool-based approach improves overall throughput, particularly for routing-intensive inter-node traffic with high message volumes and small payloads.
Messages on the same topic and QoS are routed by the same process, which guarantees message ordering. Improved throughput is achieved when messages are distributed across multiple topics.
Benefits
Message preservation: Messages are not lost during connection interruptions when queues are properly sized.
Better connection stability: Longer timeout settings handle less reliable connections more effectively.
Higher throughput: Router process pools enable parallel processing of incoming messages.
Maintained ordering: Per-topic/QoS routing ensures message order is preserved.
Last updated
Was this helpful?

