Ereignisspeicher
Die EventStore Schnittstelle definiert die verteilte Ereignissynchronisationsschicht von socketio4j. Sie bietet eine einheitliche Abstraktion zum Veröffentlichen und Abonnieren interner Ereignisse — wie Raumbeitritte, Verlassen, Bestätigungen, Sitzungsänderungen und Knoten-zu-Knoten-Synchronisation — über eine oder mehrere Serverinstanzen.
Wesentliche Merkmale
Einheitliche Ereignis-API — dasselbe Publish-/Subscribe-Modell für alle Backends
Typisierte Zustellung — Listener erhalten streng typisierte
EventMessageObjekteKnotenbewusste Filterung — Implementierungen ignorieren typischerweise selbst erzeugte Ereignisse über
nodeIdEinsteckbare Transportschichten — Kafka, Redis Streams, Hazelcast, NATS, In-Memory-Fallback usw.
Lebenszyklus-Steuerung — standardisierte
publish,subscribe,unsubscribe,shutdown
Funktionsweise
publish→ backend-spezifisches Senden überpublish0subscribe→ Ereignis-Listener registrieren übersubscribe0unsubscribe→ Listener entfernen und Aufräumen überunsubscribe0shutdown→ Freigabe von Backend-Ressourcen übershutdown0Implementierungen liefern Transportverhalten durch die
*0Methoden; die Schnittstelle standardisiert Ablauf und Fehlerbehandlung
Eigenschaften der Ereignisweiterleitung
EventStoreMode
MULTI_CHANNEL (pro-Ereignis Streams/Topics) oder SINGLE_CHANNEL (einheitlicher Kanal)
EventStoreType
Deklariert die Transportfamilie: STREAM, PUBSUB, LOCAL, usw.
PublishMode
Beschreibt die erwartete Zuverlässigkeit: RELIABLE oder UNRELIABLE
nodeId
Identifiziert den Knoten; wird verwendet, um die erneute Verarbeitung lokaler Ereignisse zu vermeiden
Hinweis:
getNodeId()liefert standardmäßig eine zufällige ID. Für verteilte Bereitstellungen konfigurieren Sie eine stabile Knotenidentität überStoreFactory.
Vorteile
👍 Verteilenede Transportschichten ohne Codeänderungen austauschbar 👍 Zentralisiertes Fehlerprotokoll und Flusssemantik 👍 Klare Erweiterungspunkte für benutzerdefinierte Backends 👍 Blendet Transportunterschiede aus
Einschränkungen
ℹ️ Zustellungsgarantien hängen von der Implementierung ab — werden nicht durch die Schnittstelle erzwungen
ℹ️ Persistenz, Reihenfolge, Deduplizierung sind Aufgaben des Backends
ℹ️ nodeIdAuf -Basis beruhende lokale Filterung muss eingehalten werden, um Duplikate zu vermeiden
Zustellungsgarantien
Die Die EventStore-Schnittstelle definiert keine Zustellungsgarantien. Zuverlässigkeit, Wiedergabe und Reihenfolge hängen vollständig vom gewählten Backend ab (z. B. Redis Streams = mindestens einmal; Redis Pub/Sub = Best-Effort; Kafka = mindestens einmal; Memory = nur lokal).
Zuletzt aktualisiert
War das hilfreich?