Как реализовать Replay Event в Axon? - PullRequest
0 голосов
/ 29 апреля 2019

У меня есть два независимых Spring-Boot Micro-Service, один - на стороне команд, другой - на стороне запросов, где события службы хранения команд в Mongodb и помещают события в RabbitMQ, затем сторона запросов будет подписывать очередь и создавать модальные запросы. Как добиться события воспроизведенияИ построить модальный Query в Axon ??Возможно ли, когда оба сервиса работают независимо на разных узлах. Если это невозможно, то что я должен сделать, чтобы добиться этого.

1 Ответ

2 голосов
/ 29 апреля 2019

Если вы решите использовать RabbitMQ для распространения событий, вы должны использовать Axon Subscribing Event Processors с SubscribableMessageSource в качестве источника - https://docs.axoniq.io/reference-guide/extensions/spring-amqp#reading-events-from-an-amqp-queue

Только Tracking Event Processor поддерживает воспроизведение событий - https://docs.axoniq.io/reference-guide/configuring-infrastructure-components/event-processing/event-processors#replaying-events

Рассмотрите возможность использования Axon Server или Kafka для распространения событий. Они поддерживают отслеживающие процессоры (а также функцию автоматического ответа).

Вы можете найти несколько примеров здесь:

Аксон Сервер: https://github.com/idugalic/digital-restaurant/blob/master/drestaurant-apps/drestaurant-microservices-rest-2/drestaurant-microservices-rest-2-query/src/main/kotlin/com/drestaurant/query/handler/RestaurantHandler.kt

Кафка: https://github.com/idugalic/digital-restaurant/blob/master/drestaurant-apps/drestaurant-microservices/drestaurant-microservices-query/src/main/kotlin/com/drestaurant/query/handler/RestaurantEventHandler.kt

... и да, ваша командная сторона может быть развернута независимо от вашей стороны запроса (проекция). Сторона запроса может быть воссоздана с нуля, отвечая на все события из прошлого. Это включит сине-зеленые развертывания (с изменением схем проекционных БД).

Лучший, Иван

...