Сага в терминах Аксона - не что иное, как определенный c тип обработчика событий. Таким образом, Axon будет использовать обработчик событий для предоставления экземпляру Saga своих событий.
Обработчики событий выпускаются в двух вариантах:
SubscribingEventProcessor
TrackingEventProcessor
Вы должны описать подписывающий процессор как «получение событий от EventBus
в той же JVM ». Процессор отслеживания должен быть описан как «извлечение событий из EventStore
, сохранение отслеживания прохождения через в качестве разделяемого токена .
Характер вашего вопроса сейчас в значительной степени зависит от того, какой обработчик событий используется. С SubscribingEventProcessor
вы по определению не делите загрузку событий между различными экземплярами одного и того же приложения. Таким образом, данная Saga будет загружена в любой живой экземпляр с учетом того, что оба события получают, связанные с одной и той же сагой. Само собой разумеется, использование подписывающего процессора для Sagas не работает должным образом, если вы собираетесь распространять приложение, работающее с этими экземплярами Saga.
Вместо этого настоятельно рекомендуется использовать TrackingEventProcessor
в качестве источника событий для конкретного экземпляра Saga * 1057. При этом любое распределение нагрузки следует из требования, согласно которому TrackingToken
должен быть , заявленный таким процессором чтобы иметь возможность выполнять любую работу (она же обрабатывает события). Таким образом, можно разделить нагрузку по предоставлению событий из хранилища событий в ваши экземпляры Saga в Axon вам нужно будет сделать следующее:
- Настройка
TrackingEventProcessor
для указанного типа саги - Настройка
TokenStore
где базовый механизм хранения совместно используется для всех экземпляров приложения - [Необязательно] Если вы хотите параллельную обработку потока событий, вам придется сегментировать
TrackingToken
для данной саги тип. [EDIT] Кроме того, таблица saga_entry
, используемая SagaStore
, должна также быть общей для всех экземпляров приложения, работающих с данным типом саги
Надеюсь, этого ответа хватит на "еще много вопросов", которые у тебя есть @Yoann!