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

Concepts — NATS

Architecture

NATS sur Hikube est un service de messaging managé, ultra-léger et haute performance. Chaque instance déployée via la ressource NATS crée un cluster de serveurs avec support optionnel de JetStream pour la persistance des messages.


Terminologie

TermeDescription
NATSRessource Kubernetes (apps.cozystack.io/v1alpha1) représentant un cluster NATS managé.
SubjectAdresse de routage des messages (ex: orders.created). Supporte les wildcards (*, >).
Publish/SubscribeModèle de communication où les publishers envoient des messages à un subject et les subscribers les reçoivent.
JetStreamExtension de persistance de NATS — stockage durable des messages avec replay, acknowledgment et consumers.
StreamCollection persistante de messages dans JetStream, avec politique de rétention configurable.
ConsumerAbonnement durable dans JetStream avec suivi de la position (offset) et acknowledgment.
Request/ReplyModèle de communication synchrone — un client envoie une requête et attend une réponse.
resourcesPresetProfil de ressources prédéfini (nano à 2xlarge).

Modèles de communication

NATS supporte trois modèles de communication :

Publish/Subscribe

Le modèle le plus simple — un publisher envoie un message, tous les subscribers reçoivent une copie :

Queue Groups

Les subscribers d'un même queue group se répartissent les messages (load balancing) :

Request/Reply

Communication synchrone avec réponse attendue :


JetStream

JetStream ajoute la persistance à NATS :

  • Les messages sont stockés sur disque dans des streams
  • Les consumers suivent leur position et peuvent re-lire les messages
  • Support du at-least-once et exactly-once delivery
  • Rétention configurable par durée, nombre de messages ou taille
astuce

Activez JetStream uniquement si vous avez besoin de persistance. Pour du pub/sub éphémère, le NATS de base est plus léger (< 10 MB de RAM par instance).


Gestion des utilisateurs

Les utilisateurs NATS sont déclarés dans le manifeste avec un mot de passe. 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
Empreinte mémoire minimale< 10 MB par instance (sans JetStream)
Taille stockage JetStreamVariable (en Gi)
Latence typique< 1 ms (même datacenter)

Pour aller plus loin