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

aho*_*fer 9 cqrs axon apache-pulsar

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

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

Ste*_*ven 15

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

首先,您可以使用完全免费的 Axon Server 标准版,如果您愿意,也可以查看代码。如果您希望将基础设施重新掌握在自己手中,您还可以选择不同的方法来分发CommandBusEventBus/ EventStore

对于CommandBus框架提供了DistributedCommandBus两个实现,它们是:

  1. JGroups
  2. 春云

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

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

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

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

当您只想将其他应用程序连接到您的 Event Stream 时,选项 2 将是一个不错的选择。同样,该框架在这方面有两个选择:

  1. AMQP
  2. 卡夫卡

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

所有这些扩展和它们的选项都应该在参考指南中清楚地说明,所以如果你要开始一个应用程序,我肯定会检查这个文档。

但是,您无法分发唯一的东西,那就是QueryBus. 有一个悬而未决的问题要解决这个问题,有人为此付出了努力提供PR。在看到 Axon Server Standard 版是如何做到的之后,他故意关闭了 PR(带有以下评论),因为在这个阶段维护这样的工具对他来说似乎不可行。

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

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

  • 好的一点是,没有什么是免费的。我并不反对涉及许可软件的解决方案。然而,合同是这样写的:增加更多的人比支付许可证容易得多。 (2认同)