Возможно ли воспроизвести события через RabbitMQ с Axon 3

У меня есть приложение, созданное на основе структуры Axon 3.

  • Есть 2 экземпляра (jvm)
  • Первый обрабатывает команды и уведомляет вторую с помощью RabbitMQ о создании базы данных модели чтения.
  • Для этого приложения есть хранилище событий (MongoDB)

Теперь я хочу создать третий экземпляр, и возможно ли воспроизвести все исторические события первого экземпляра через RabbitMQ для создания начального состояния третьего экземпляра? а как его настроить?

Я попробовал документ Axons для ответа, кажется, что Я должен использовать TrackingEventProcessor вместо значения по умолчанию SubscribingEventProcessor, но он не позволяет использовать с SpringAMQPMessageSource (упоминается в документе)


person Lei    schedule 04.07.2017    source источник


Ответы (1)


Axon имеет два режима: отслеживание и подписка. В зависимости от источника ваших событий вы можете выбрать один, а иногда и оба стиля.

AMQP - это спецификация брокера сообщений. После доставки сообщение удаляется из очереди, в которую оно было помещено. Следовательно, концептуально воспроизвести эти события невозможно, поскольку они больше не существуют в брокере.

Если повторы важны, убедитесь, что вы используете механизм обмена сообщениями, в котором хранятся сообщения. В Axon EventStore делает именно это. На данный момент Axon имеет только EmbeddedEventStore, но у вас может быть хранилище событий в принимающем узле, указывающем на ту же базу данных, что и отправляющий узел.

В настоящий момент в AxonIQ мы работаем над сервером хранилища событий, который решает эту проблему более чистым способом (нет необходимости обмениваться источниками данных между экземплярами).

person Allard    schedule 06.07.2017
comment
спасибо, сервер хранилища событий звучит для нас очень интересно, и есть ли идеи относительно даты выпуска для этого? - person Lei; 07.07.2017
comment
Мы ожидаем, что сможем опубликовать бета-версию программы где-то в августе. Если вы подпишетесь на информационный бюллетень на axoniq.io, мы уведомим вас, как только бета станет доступной. - person Allard; 27.07.2017
comment
Может ли Kafka быть опцией для шины событий / источника событий, а EventStore - опцией в качестве хранилища событий? - person gentiane; 23.07.2018
comment
@gentiane На основе точек в axoniq.io/docs/axon-framework-3.3 ; Я бы сказал, да, это должно быть возможно - person hbogert; 11.11.2019