Zum Hauptinhalt springen
Version: 3.0.0-alpha (Diátaxis)

Konzepte — NATS

Architektur

NATS auf Hikube ist ein verwalteter Messaging-Dienst, ultraleicht und hochperformant. Jede über die Ressource NATS bereitgestellte Instanz erstellt einen Server-Cluster mit optionaler JetStream-Unterstützung für die Nachrichtenpersistenz.


Terminologie

BegriffBeschreibung
NATSKubernetes-Ressource (apps.cozystack.io/v1alpha1), die einen verwalteten NATS-Cluster darstellt.
SubjectRouting-Adresse für Nachrichten (z.B. orders.created). Unterstützt Wildcards (*, >).
Publish/SubscribeKommunikationsmodell, bei dem Publisher Nachrichten an ein Subject senden und Subscriber sie empfangen.
JetStreamPersistenzerweiterung von NATS — dauerhafte Nachrichtenspeicherung mit Replay, Acknowledgment und Consumern.
StreamPersistente Nachrichtensammlung in JetStream mit konfigurierbarer Aufbewahrungsrichtlinie.
ConsumerDauerhaftes Abonnement in JetStream mit Positionsverfolgung (Offset) und Acknowledgment.
Request/ReplySynchrones Kommunikationsmodell — ein Client sendet eine Anfrage und wartet auf eine Antwort.
resourcesPresetVordefiniertes Ressourcenprofil (nano bis 2xlarge).

Kommunikationsmodelle

NATS unterstützt drei Kommunikationsmodelle:

Publish/Subscribe

Das einfachste Modell — ein Publisher sendet eine Nachricht, alle Subscriber erhalten eine Kopie:

Queue Groups

Die Subscriber derselben Queue Group teilen sich die Nachrichten (Load Balancing):

Request/Reply

Synchrone Kommunikation mit erwarteter Antwort:


JetStream

JetStream fügt NATS Persistenz hinzu:

  • Die Nachrichten werden auf der Festplatte in Streams gespeichert
  • Die Consumer verfolgen ihre Position und können Nachrichten erneut lesen
  • Unterstützung von At-least-once- und Exactly-once-Zustellung
  • Konfigurierbare Aufbewahrung nach Dauer, Nachrichtenanzahl oder Größe
Tipp

Aktivieren Sie JetStream nur, wenn Sie Persistenz benötigen. Für ephemeres Pub/Sub ist das Basis-NATS leichtgewichtiger (< 10 MB RAM pro Instanz).


Benutzerverwaltung

Die NATS-Benutzer werden im Manifest mit einem Passwort deklariert. Die Zugangsdaten werden im Secret <instance>-credentials gespeichert.


Ressourcen-Presets

PresetCPUSpeicher
nano250m128Mi
micro500m256Mi
small1512Mi
medium11Gi
large22Gi
xlarge44Gi
2xlarge88Gi

Grenzen und Kontingente

ParameterWert
Max. ReplikateJe nach Tenant-Kontingent
Minimaler Speicherverbrauch< 10 MB pro Instanz (ohne JetStream)
JetStream-SpeichergrößeVariabel (in Gi)
Typische Latenz< 1 ms (im selben Datacenter)

Weiterführende Informationen