Как я могу переслать команды, запросы и события в другой экземпляр Axon - PullRequest
2 голосов
/ 01 апреля 2020

Мы работаем с Axon, и к нему подключено несколько сервисов. Все работает нормально, за исключением того, что при локальном запуске и разработке / тестировании приложений память и диск выглядят на 100%, что усложняет разработку. Итак, мне интересно, возможно ли создать какой-то прокси-сервис, который мы запускаем локально для пересылки некоторых наших команд, запросов и событий другому экземпляру Axon, который работает в другом месте и к которому подключены реальные сервисы? поэтому нам не нужно запускать все наши сервисы локально. Я надеюсь, что я объясняю это ясно здесь.

1 Ответ

3 голосов
/ 01 апреля 2020

Конечно, интересный сценарий. Хотя в настоящее время у нас нет стандартного решения для этого в Axon Framework, я вижу несколько способов реализовать его таким образом, чтобы вы могли обрабатывать подмножество команд / запросов локально и при этом использовать хранилище событий и обработчики для другие команды / запросы в Axon Server.

Подход, который я выбрал бы, заключается в расширении классов AxonServerCommandBus и AxonServerQueryBus и переопределении операции диспетчеризации в командной шине и операциях query / scatterGather в шине запросов. Эти операции могут фильтровать действия, которые вы хотите обрабатывать локально (на основе имени команды / запроса или на основе некоторых метаданных в запросе) и пересылать сообщение в localSegment (доступный через операцию localSegment ()).

Надеюсь, это поможет,

Мар c

...