Можно ли масштабировать Axon Framework без Axon Server Enterprise

Возможно ли масштабирование Axon Framework без Axon Server Enterprise? Я заинтересован в создании прототипа приложения CQRS с Axon, но окончательная развертываемая система должна быть свободной от лицензионных сборов. Если Axon Framework нельзя масштабировать до полдюжины узлов с помощью бесплатного программного обеспечения, то мне, вероятно, следует поискать в другом месте.

Если Axon Framework окажется не лучшим выбором для системы, что вы порекомендуете? Будет ли разумной альтернативой создание чего-либо на основе Apache Pulsar?


person ahoffer    schedule 14.10.2019    source источник


Ответы (1)


Думаю, у меня для вас хорошие новости. Вы можете прекрасно использовать Axon Framework и без Axon Server Enterprise.

Во-первых, вы можете использовать версию Axon Server Standard, которая полностью бесплатна, и вы также можете проверить код, если хотите. Если вы предпочитаете вернуть инфраструктуру в свои руки, вы также можете выбрать разные подходы к распределению CommandBus и _2 _ / _ 3_.

Для CommandBus фреймворк предоставляет DistributedCommandBus, для которого существуют две реализации, а именно:

  1. JGroups
  2. Spring Cloud

Я бы сказал, что вариант 2 является наиболее идеальным для распространения ваших команд, поскольку он дает вам свободу выбора любой реализации Spring Cloud Discovery Service, которую вы хотите. Это должно дать вам возможность работать без лицензий в этой области.

Для распространения ваших событий вы можете в общих чертах рассмотреть два подхода:

  1. Поделитесь базой данных, также известной как ваш EventStore, среди всех экземпляров
  2. Используйте шину сообщений о событиях для распространения сообщений о событиях

Если вы хотите, чтобы экземпляры ваших узлов могли использовать источник событий для модели команд, вы склонны использовать вариант 1. Это требуется, поскольку Axon Framework требует выделенного EventStore, чтобы иметь возможность получать модели команд из истории.

Если вы просто хотите подключить к потоку событий другие приложения, вам подойдет вариант 2. Опять же, у фреймворка есть два варианта в этой области:

  1. AMQP
  2. Kafka

Единственное, на что я хотел бы дополнительно отметить в этой части, это то, что расширение Kafka все еще находится в состоянии релиз-кандидата. Однако в настоящее время над ним активно работают.

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

Однако есть единственная вещь, которую вы не можете распространять, - это QueryBus. Существует нерешенная проблема, чтобы решить эту проблему, для которой кто-то приложил усилия, чтобы предоставить PR. Однако, увидев, как это делает стандартная версия Axon Server, он намеренно закрыл PR (со следующим комментарий), поскольку ему не представлялось возможным поддерживать такой инструмент на данном этапе.

Итак, можно ли использовать Axon Framework без Axon Server Enterprise? Думаю, можно. :-) Имейте в виду, что если вы не будете использовать Axon Server Enterprise, то выиграете, если не будете использовать Axon Server Enterprise, но это не означает, что ваша продукция будет бесплатной. Вам нужно будет вернуть довольно много времени на настройку инфраструктуры и время производства, чтобы все заработало.

Надеюсь, это даст вам много отзывов @ahoffer!

person Steven    schedule 15.10.2019
comment
Хороший момент в том, что нет ничего бесплатного. Я не против решений, связанных с лицензионным ПО. Однако контракт составлен таким образом, что добавить больше людей намного проще, чем платить за лицензии. - person ahoffer; 15.10.2019