Axon Framework - возможно ли иметь один процессор отслеживания событий для нескольких саг?

Начнем с того, что я использую Axon Framework версии 3.1.2 с включенными процессорами отслеживания событий для обоих @EventHandlers и саги.

Текущее поведение по умолчанию для создания обработчиков событий для Sagas, как я вижу, заключается в создании единого обработчика событий отслеживания для одной Saga. Это работает довольно хорошо в масштабе микросервиса, но может оказаться проблемой в больших монолитных приложениях, которые могут реализовывать много Sagas. Поскольку я пишу такое приложение, я хочу лучше контролировать количество запущенных потоков, что, в свою очередь, даст мне лучший контроль над использованием пула соединений с базой данных, переключением контекста и использованием памяти. В идеале мне бы хотелось иметь столько процессоров отслеживания событий, сколько ядер процессоров, где каждый процессор событий выполняет несколько саг и / или @EventHandlers,

Я уже понял, что я могу сделать это для @EventHandlers через либо @ProcessingGroup аннотация или EventHandlingConfiguration::assignHandlersMatching метод, но SagaConfiguration похоже не выставляет подобный API. На самом деле, самый конкретный SagaConfiguration::trackingSagaManager Метод жестко запрограммирован, чтобы создать новый TrackingEventProcessor объект, который заставляет меня думать, что я пытаюсь достичь в настоящее время невозможно. Итак, вот мой вопрос: есть ли какой-то неочевидный способ, который мне не хватает, который позволит мне выполнять несколько саг в контексте одного обработчика событий?

1 ответ

Решение

Я могу подтвердить с вами, что (в настоящее время) невозможно управлять несколькими сагами однимEventProcessor, Кроме того, я сомневаюсь в том, что за и против это делать, поскольку ваш сценарий не кажется странным на первый взгляд. Я рекомендую оставить запрос на добавление функции на страницу AxonFramework GitHub. Таким образом, мы (1) документируем эту идею / желание и (2) имеем хорошее место, чтобы обсудить, реализовать это или нет.

Другие вопросы по тегам