不使用Axon Server Enterprise,是否可以扩展Axon Framework?

14

是否有可能在没有 Axon Server Enterprise 的情况下扩展 Axon Framework?我有兴趣使用 Axon 创建原型 CQRS 应用程序,但最终部署的系统必须不受许可费用限制。如果 Axon Framework 无法使用免费软件扩展到半打节点,则我应该考虑其他方案。

如果 Axon Framework 不适合该系统,您会推荐什么?围绕 Apache Pulsar 构建一些东西是一个明智的替代方案吗?

1个回答

23

那么我想我有好消息要告诉您。您可以完全不使用Axon Server Enterprise而完美地利用Axon Framework。

首先,您可以使用完全免费的Axon Server Standard版,如果需要,还可以查看代码。如果您更喜欢掌握基础设施,也可以选择不同的方法来分发CommandBusEventBus/EventStore

对于CommandBus,框架提供了DistributedCommandBus,其中有两种实现方式:

  1. JGroups
  2. Spring Cloud

我认为选项2是分发命令最理想的选择,因为它使您可以自由选择任何Spring Cloud Discovery Service实现,这应该让您在此领域“免费使用许可证”。

对于分发事件,您可以大致考虑两种方法:

  1. 共享数据库,即您的EventStore,在所有实例之间共享
  2. 使用事件消息总线来分发事件消息

如果您希望节点的实例能够源自命令模型,则倾向于使用选项1。这是必需的,因为Axon Framework需要专用的EventStore才能从历史记录中源自命令模型。

当你只想连接其他应用程序到你的事件流时,选项2会很合适。同样,该框架在这个领域有两个选项:AMQPKafka
此外,我想指出的唯一一件事是,Kafka扩展仍处于发布候选状态。不过目前正在积极开发中。
所有这些扩展及其选项都应在参考指南中清楚地说明,因此如果您要开始应用程序,一定要查看此文档。
但有一件事是您不能分发的,那就是QueryBus。对此有一个问题需要解决,有人付出了努力提供PR。然而,在看到Axon Server标准版如何处理它后,他有意关闭了PR(附带以下评论),因为在这个阶段维护这样的工具似乎对他来说不可行。
所以,你能在没有Axon Server Enterprise的情况下使用Axon Framework吗? 嗯,我认为可以。 :-) 请注意,尽管如果您不使用Axon Server Enterprise,您将赢得不需要许可费,但这并不意味着您的生产将是免费的。 您将引入相当多的基础架构设置和生产时间来使这个过程正常运行。 希望这能给您带来足够的反馈@ahoffer!

2
好的观点是没有什么是免费的。我不反对使用许可软件的解决方案。然而,合同的写作方式使得增加更多人比购买许可证更容易。 - ahoffer
事件溯源命令模型有何优势?如果我想这样做,为什么不将事件分发到 Kafka 等地方呢? - Rhubarb
事件溯源命令模型本质上意味着您将为应用程序中的每个模型使用单个数据源。这有效地解决了“正确的真相来源是什么”的问题,因为您的事件成为唯一的真相来源。顺便说一下,我在此评论中也尝试为您澄清 - https://stackoverflow.com/questions/56680699/automatic-persistence-of-command-state-axon-framework/56700612?noredirect=1#comment124119961_56700612 - Steven

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接