2017-07-04 3 views
0

J'ai une application construite avec le framework Axon 3.Est-ce possible de relire les événements via RabbitMQ avec Axon 3

  • Il y a 2 occurrences (JVM)
  • La première gère les commandes et informe le second avec RabbitMQ pour construire une base de données de modèle de lecture.
  • Il y a un magasin d'événements pour cette application (MongoDB)

Maintenant, je veux construire une troisième instance et Est-ce possible de rejouer tous les événements historiques de première instance via RabbitMQ pour construire l'état initial du troisième instance? et comment le configurer?

J'ai essayé the doc Axons une réponse, il semble que je devrais utiliser TrackingEventProcessor au lieu de la valeur par défaut d'un SubscribingEventProcessor, mais il ne permet pas d'utiliser avec SpringAMQPMessageSource (mentionné dans le doc)

Répondre

0

Axon a deux modes: suivi et abonnement. Selon la source de vos événements, vous pouvez choisir un ou parfois les deux styles.

AMQP est une spécification pour un courtier de messages. Une fois qu'un message est remis, il est retiré de la file d'attente sur laquelle il a été placé. Par conséquent, conceptuellement, il est impossible de rejouer ces événements, car ils n'existent plus dans le courtier.

Si les replays sont importants, assurez-vous d'utiliser un mécanisme de messagerie qui stocke les messages. Dans Axon, l'EventStore fait exactement cela. Pour l'instant, Axon ne dispose que de l'EmbeddedEventStore, mais vous pouvez avoir un magasin d'événements dans le nœud de destination qui pointe vers la même base de données que le nœud émetteur. À l'heure actuelle, chez AxonIQ, nous travaillons sur un serveur de magasin d'événements, qui traite cela de manière plus propre (pas besoin de partager des sources de données entre les instances).

+0

merci, Event Store Server semble très intéressant pour nous et toute idée de la date de sortie pour cela? – Lei

+0

Nous prévoyons être en mesure de publier un programme bêta en août. Si vous vous abonnez à la newsletter sur axoniq.io, nous vous informerons dès que la version bêta sera disponible. – Allard