Fábrica de almacenes
El StoreFactory define cómo socketio4j crea y gestiona almacenes por sesión y mapas compartidos, mientras también expone un EventStore para la sincronización distribuida de eventos. El almacenamiento y la propagación de eventos están desacoplados, lo que permite que cualquier backend de almacenamiento de datos se empareje con cualquier mecanismo de distribución de eventos compatible.
Esto permite combinaciones flexibles como:
Almacenamiento en memoria + sincronización de eventos basada en Kafka
Almacenamiento en Redis + pub/sub de NATS
Almacenamiento en Hazelcast + Redis Streams
Almacenamiento en memoria + sin distribución (MemoryEventStore) …o cualquier otro emparejamiento específico de despliegue.
Características clave
Creación de Store por sesión — cada conexión de cliente obtiene su propio almacén de datos
Creación de mapa compartido — proporciona mapas nombrados para namespaces, adaptadores y plugins
Exposición de EventStore — suministra un backend de eventos, independiente de la elección de almacenamiento
Diseño componible — el almacenamiento y la propagación de eventos pueden provenir de sistemas distintos
Comportamiento configurable — cambia la distribución de eventos sin reemplazar el almacenamiento
Cómo funciona
createStore(sessionId)→ devuelve un ámbito de sesiónAlmacénvinculado al backend de almacenamientocreateMap(name)→ devuelve un mapa nombrado y compartido para el estado entre sesioneseventStore()→ devuelve elEventStore(por defecto o personalizado)init(...)→ prepara el almacenamiento y la sincronización de eventos antes del arranque del servidorshutdown()→ limpia los recursos asignados durante la finalización
Combinar y emparejar
Backend de almacenamiento (StoreFactory)
Backend de eventos (EventStore)
Válido
Despliegue de ejemplo
Memoria
Kafka
✔️
datos de sesión locales + propagación global de eventos
Redis
NATS
✔️
Mapas Redis + mensajería de baja latencia
Hazelcast
Redis Streams
✔️
Clustering de Hazelcast + sincronización de streams duradera
Memoria
Memoria
✔️
nodo único, sin distribución
Hazelcast
Kafka
✔️
Replicación de sesión en Hazelcast + sincronización con Kafka
Resumen de diseño
StoreFactory decide dónde vive la metadata por sesión
EventStore decide cómo se distribuyen los eventos entre servidores
Ambos son independientes y reemplazables en tiempo de ejecución
Ventajas
👍 Despliegues híbridos y rutas de migración gradual 👍 Las capas de almacenamiento y eventos pueden evolucionar independientemente 👍 Evita acoplar el estado distribuido con el transporte de eventos 👍 Funciona tanto para configuraciones de nodo único como en clúster
Última actualización
¿Te fue útil?