Usine de magasins
Le StoreFactory définit comment socketio4j crée et gère des magasins par session et des maps partagées, tout en exposant un EventStore pour la synchronisation d'événements distribuée. Le stockage et la propagation des événements sont découplés, permettant à n'importe quel backend de magasin de données d'être associé à n'importe quel mécanisme de distribution d'événements compatible.
Cela permet des combinaisons flexibles telles que :
Stockage en mémoire + synchronisation d'événements basée sur Kafka
Stockage Redis + pub/sub NATS
Stockage Hazelcast + Redis Streams
Stockage en mémoire + pas de distribution (MemoryEventStore) …ou toute autre association spécifique au déploiement.
Caractéristiques principales
Création de Store par session — chaque connexion cliente obtient son propre magasin de données
Création de map partagée — fournit des maps nommées pour les namespaces, les adapters et les plugins
Exposition d'EventStore — fournit un backend d'événements, indépendant du choix de stockage
Conception composable — le stockage et la propagation des événements peuvent provenir de systèmes différents
Comportement configurable — échangez la distribution d'événements sans remplacer le stockage
Comment ça marche
createStore(sessionId)→ renvoie un scoped à la sessionMagasinlié au backend de stockagecreateMap(name)→ renvoie une map nommée et partagée pour l'état inter-sessioneventStore()→ renvoie leEventStore(par défaut ou personnalisé)init(...)→ prépare le stockage et la synchronisation d'événements avant le démarrage du serveurshutdown()→ nettoie les ressources allouées lors de l'arrêt
Mélange et correspondance
Backend de stockage (StoreFactory)
Backend d'événements (EventStore)
Valide
Exemple de déploiement
Mémoire
Kafka
✔️
données de session locales + propagation d'événements globale
Redis
NATS
✔️
Maps Redis + messagerie à faible latence
Hazelcast
Redis Streams
✔️
Clustering Hazelcast + synchronisation durable via stream
Mémoire
Mémoire
✔️
nœud unique, pas de distribution
Hazelcast
Kafka
✔️
Réplication de session Hazelcast + synchronisation Kafka
Résumé de la conception
StoreFactory décide où vivent les métadonnées par session
EventStore décide comment les événements sont distribués entre les serveurs
Les deux sont indépendants et remplaçables à l'exécution
Avantages
👍 Déploiements hybrides et voies de migration progressive 👍 Les couches de stockage et d'événements peuvent évoluer indépendamment 👍 Évite de coupler l'état distribué au transport d'événements 👍 Fonctionne aussi bien pour les configurations mono‑nœud que pour les clusters
Mis à jour
Ce contenu vous a-t-il été utile ?