list-timelineKafka/AutoMQ

Le KafkaEventStore fournit un magasin d'événements distribué et en streaming pour socketio4j utilisant Apache Kafka. Il permet mise à l'échelle horizontale en diffusant des événements sur toutes les instances de serveur afin que les messages d'événements, les joins/parties de salles et autres événements internes soient synchronisés entre les nœuds.

Principales caractéristiques

  • Distribué et tolérant aux pannes — les événements sont persistés dans Kafka et livrés à chaque nœud actif

  • Publication asynchrone et non bloquante — évite de bloquer les boucles d'événements Netty

  • Bornes de relecture d'événements — commence la consommation à partir de plus récent messages seulement (pas de relecture d'historique)

  • Sémantique de diffusion en streaming — chaque nœud reçoit tous les événements, pas des messages en répartition de charge

  • Prévention des doublons — saute les événements provenant du même nœud (nodeId filtrage)

Comment ça fonctionne

  • Chaque publication enregistre l'événement dans un topic Kafka (unique ou par type selon le mode)

  • Chaque type d'événement abonné est sondé par un thread démon dédié

  • Les messages sont délivrés aux écouteurs locaux seulement s'ils proviennent d'un nœud différent

  • Les enregistrements corrompus (« pilule empoisonnée ») sont ignorés pour maintenir la consommation active

Modes

Mode
Comportement
Quand l'utiliser

MULTI_CHANNEL

Chaque type d'événement obtient son propre topic Kafka

Par défaut ; parallélisme et séparation

SINGLE_CHANNEL

Tous les événements routés vers ALL_SINGLE_CHANNEL

Lorsque l'ordre global entre tous les types d'événements est requis

Avantages

  • 👍 Fonctionne dans des déploiements multi-nœuds

  • 👍 Synchronise les événements socketio4j entre les serveurs

  • 👍 Arrêt sûr et nettoyage des écouteurs

  • 👍 Aucune rétropression sur les threads Netty

Limitations

  • ℹ️ Pas une file point-à-point — toujours en style diffusion

  • ℹ️ Pas de relecture historique — consomme uniquement à partir des derniers offsets

  • ℹ️ Nécessite la disponibilité d'un cluster Kafka

Garantie de délivrance : Sémantique au moins une fois — des livraisons en double sont possibles ; les écouteurs doivent être idempotents.

Mis à jour

Ce contenu vous a-t-il été utile ?