Думаю, у меня для вас хорошие новости. Вы можете прекрасно использовать Axon Framework и без Axon Server Enterprise.
Во-первых, вы можете использовать версию Axon Server Standard, которая полностью бесплатна, и вы также можете проверить код, если хотите. Если вы предпочитаете вернуть инфраструктуру в свои руки, вы также можете выбрать разные подходы к распределению CommandBus
и _2 _ / _ 3_.
Для CommandBus
фреймворк предоставляет DistributedCommandBus
, для которого существуют две реализации, а именно:
- JGroups
- Spring Cloud
Я бы сказал, что вариант 2 является наиболее идеальным для распространения ваших команд, поскольку он дает вам свободу выбора любой реализации Spring Cloud Discovery Service, которую вы хотите. Это должно дать вам возможность работать без лицензий в этой области.
Для распространения ваших событий вы можете в общих чертах рассмотреть два подхода:
- Поделитесь базой данных, также известной как ваш
EventStore
, среди всех экземпляров
- Используйте шину сообщений о событиях для распространения сообщений о событиях
Если вы хотите, чтобы экземпляры ваших узлов могли использовать источник событий для модели команд, вы склонны использовать вариант 1. Это требуется, поскольку Axon Framework требует выделенного EventStore
, чтобы иметь возможность получать модели команд из истории.
Если вы просто хотите подключить к потоку событий другие приложения, вам подойдет вариант 2. Опять же, у фреймворка есть два варианта в этой области:
- AMQP
- 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