Aller au contenu principal
Version: 3.0.0-alpha (Diátaxis)

Concepts — RabbitMQ

Architecture

RabbitMQ sur Hikube est un service de messaging managé basé sur le protocole AMQP. Chaque instance déployée via la ressource RabbitMQ crée un cluster haute disponibilité avec des quorum queues (protocole Raft) pour la réplication des messages.


Terminologie

TermeDescription
RabbitMQRessource Kubernetes (apps.cozystack.io/v1alpha1) représentant un cluster RabbitMQ managé.
AMQPAdvanced Message Queuing Protocol — protocole standard de messaging supporté par RabbitMQ.
ExchangePoint d'entrée des messages. Route les messages vers les queues via des bindings.
QueueFile d'attente qui stocke les messages en attendant qu'un consumer les traite.
BindingRègle de routage entre un exchange et une queue (basée sur une routing key).
Quorum QueueType de queue utilisant le protocole Raft pour répliquer les messages sur plusieurs nœuds.
Virtual Host (vhost)Espace de noms logique qui isole les exchanges, queues et permissions au sein d'un même cluster.
ConsumerApplication qui lit et traite les messages d'une queue.
resourcesPresetProfil de ressources prédéfini (nano à 2xlarge).

Routage des messages

RabbitMQ utilise un modèle de routage flexible basé sur les exchanges et les bindings :

Types d'exchanges

TypeRoutage
directRouting key exacte
topicPattern matching avec wildcards (*, #)
fanoutBroadcast à toutes les queues liées
headersRoutage basé sur les headers du message

Quorum Queues et haute disponibilité

Les quorum queues utilisent le protocole Raft pour répliquer les messages :

  1. Un nœud est élu leader pour chaque queue
  2. Les messages sont répliqués sur les followers avant confirmation
  3. En cas de panne du leader, un follower est automatiquement promu
astuce

Configurez replicas: 3 minimum pour garantir le quorum Raft et la haute disponibilité des quorum queues.


Virtual Hosts

Les vhosts isolent les ressources au sein d'un même cluster :

  • Chaque vhost a ses propres exchanges, queues et permissions
  • Les utilisateurs peuvent avoir des rôles différents par vhost : admin ou readonly
  • Utile pour séparer les environnements (production, staging) sur un même cluster

Gestion des utilisateurs

Les utilisateurs sont déclarés dans le manifeste avec :

  • Mot de passe pour l'authentification
  • Rôles par vhost : admin (lecture/écriture/configuration), readonly (lecture seule)

Les credentials sont stockés dans le Secret <instance>-credentials.


Presets de ressources

PresetCPUMémoire
nano250m128Mi
micro500m256Mi
small1512Mi
medium11Gi
large22Gi
xlarge44Gi
2xlarge88Gi

Limites et quotas

ParamètreValeur
Réplicas maxSelon quota tenant
Taille stockage (size)Variable (en Gi)
Vhosts par clusterIllimité (selon ressources)
Protocoles supportésAMQP 0-9-1, AMQP 1.0, MQTT, STOMP

Pour aller plus loin