是否可以在没有 Axon Server Enterprise 的情况下扩展 Axon Framework

Is it possible to scale Axon Framework without Axon Server Enterprise

是否可以在没有 Axon Server Enterprise 的情况下扩展 Axon Framework?我有兴趣使用 Axon 创建原型 CQRS 应用程序,但最终的可部署系统必须免除许可费。如果 Axon Framework 不能使用免费软件扩展到六个节点,那么我可能应该看看其他地方。

如果事实证明 Axon Framework 不是系统的好选择,您会推荐什么?围绕 Apache Pulsar 构建一些东西会是一个明智的选择吗?

我想我有好消息要告诉你。 您可以在没有 Axon Server Enterprise 的情况下完美地使用 Axon Framework。

首先,您可以使用Axon Server Standard版,它是完全免费的,如果您愿意也可以查看代码。 如果您希望将基础架构重新掌握在自己手中,您还可以 select 不同的方法来分发 CommandBusEventBus/EventStore.

对于 CommandBus,框架提供了 DistributedCommandBus 两个实现,即:

  1. JGroups
  2. Spring Cloud

我认为选项 2 最适合分发命令,因为它使您可以自由选择所需的 Spring 云发现服务实现。这应该让您能够在该地区“免许可”工作。

为了分发您的事件,您可以大致查看两种方法:

  1. 在所有实例中共享数据库,也就是您的 EventStore
  2. 使用事件消息总线分发事件消息

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

当您只想将其他应用程序连接到您的事件流时,选项 2 会很合适。同样,该框架在这方面有两个选项:

  1. AMQP
  2. Kafka

关于这部分,我唯一想额外指出的是 Kafka 扩展仍处于候选发布状态。不过目前正在积极开发中。

所有这些扩展及其选项都应在 Reference Guide 中明确说明,因此如果您要启动应用程序,我一定会查看此文档。

不过,您不能分发唯一的东西,那就是 QueryBus。 有一个优秀的issue to resolve this, for which someone put the effort in to provide a PR。 不过,在看到 Axon Server Standard Edition 是如何做到的之后,他有意关闭了 PR(使用以下 comment),因为在他看来现阶段维护这样的工具并不可行。

那么,您可以在没有 Axon Server Enterprise 的情况下使用 Axon Framework 吗? 好吧,我想你可以。 :-) 不过请注意,虽然如果您不使用 Axon Server Enterprise 就可以免除许可费,但这并不意味着您的产品将是免费的。 您将引入相当多的基础设施设置和生产时间来实现这一目标。

希望这能给你很多反馈@ahoffer!