Vai al contenuto principale
Versione: 3.0.0-alpha (Diátaxis)

Concetti — RabbitMQ

Architettura

RabbitMQ su Hikube è un servizio di messaggistica gestito basato sul protocollo AMQP. Ogni istanza distribuita tramite la risorsa RabbitMQ crea un cluster ad alta disponibilità con quorum queue (protocollo Raft) per la replica dei messaggi.


Terminologia

TermineDescrizione
RabbitMQRisorsa Kubernetes (apps.cozystack.io/v1alpha1) che rappresenta un cluster RabbitMQ gestito.
AMQPAdvanced Message Queuing Protocol — protocollo standard di messaggistica supportato da RabbitMQ.
ExchangePunto di ingresso dei messaggi. Instrada i messaggi verso le code tramite binding.
QueueCoda che archivia i messaggi in attesa che un consumer li elabori.
BindingRegola di routing tra un exchange e una coda (basata su una routing key).
Quorum QueueTipo di coda che utilizza il protocollo Raft per replicare i messaggi su più nodi.
Virtual Host (vhost)Spazio dei nomi logico che isola exchange, code e permessi all'interno di uno stesso cluster.
ConsumerApplicazione che legge ed elabora i messaggi di una coda.
resourcesPresetProfilo di risorse predefinito (da nano a 2xlarge).

Routing dei messaggi

RabbitMQ utilizza un modello di routing flessibile basato sugli exchange e i binding:

Tipi di exchange

TipoRouting
directRouting key esatta
topicPattern matching con wildcard (*, #)
fanoutBroadcast a tutte le code collegate
headersRouting basato sugli header del messaggio

Quorum Queue e alta disponibilità

Le quorum queue utilizzano il protocollo Raft per replicare i messaggi:

  1. Un nodo viene eletto leader per ogni coda
  2. I messaggi vengono replicati sui follower prima della conferma
  3. In caso di guasto del leader, un follower viene automaticamente promosso
suggerimento

Configurate replicas: 3 minimo per garantire il quorum Raft e l'alta disponibilità delle quorum queue.


Virtual Host

I vhost isolano le risorse all'interno di uno stesso cluster:

  • Ogni vhost ha i propri exchange, code e permessi
  • Gli utenti possono avere ruoli diversi per vhost: admin o readonly
  • Utile per separare gli ambienti (produzione, staging) sullo stesso cluster

Gestione degli utenti

Gli utenti sono dichiarati nel manifesto con:

  • Password per l'autenticazione
  • Ruoli per vhost: admin (lettura/scrittura/configurazione), readonly (sola lettura)

Le credenziali sono archiviate nel Secret <istanza>-credentials.


Preset di risorse

PresetCPUMemoria
nano250m128Mi
micro500m256Mi
small1512Mi
medium11Gi
large22Gi
xlarge44Gi
2xlarge88Gi

Limiti e quote

ParametroValore
Repliche maxSecondo la quota del tenant
Dimensione archiviazione (size)Variabile (in Gi)
Vhost per clusterIllimitato (secondo le risorse)
Protocolli supportatiAMQP 0-9-1, AMQP 1.0, MQTT, STOMP

Per approfondire