【问题标题】:Can I develop multi tenancy application by using axon framework and spring boot?我可以使用 axon 框架和 Spring Boot 开发多租户应用程序吗?
【发布时间】:2021-03-01 15:24:50
【问题描述】:

我想在我当前的项目中使用Axon FrameworkSpring BootMongoDB实现多租户应用程序。目前该应用程序以单租户方式运行。该方法是为每个租户创建单独的 mongo 数据库。我们面临的问题是如何在特定租户数据库中存储和保存事件。找不到任何类方法来覆盖和添加租户 ID(数据库名称)以在数据库中获取或保存事件。

我们正在使用Axon Framework 4.1.1axon-mongodb 扩展。

能否请您告诉我这是否可以做到(如果可以)?任何高级代码都会有用吗?

【问题讨论】:

  • 您可能想看看some discussions on AxonIQ's discuss platform(如果您还没有的话)。
  • 感谢您的回复。我看过提供的论坛,它更多地讨论了 RDMS 而不是 MongoDB 中的多租户。目前,我们的方法是为每个租户创建 Mongo 数据库。期待在这个方向上获得解决方案/想法?

标签: mongodb spring-boot saas axon axon-framework


【解决方案1】:

首先,如果您使用 MongoDB 作为 Axon 中的事件存储,我想提出警告。当前的实施,在 AxonIQ 的心目中,随着时间的推移,不能提供您从事件存储中需要的必要好处。详细说明为什么会出现这种情况在这里会有点多,但this 视频很好地解释了这一点(Mongo 在演示文稿中大约 25 分钟讨论)。

当谈到在 Axon 应用程序中实现多租户时,Milen 对您的消息的评论实际上就足够了。就此而言,MongoDb 或 RDBMS 或 Axon Server 之间的过程没有什么真正不同。尽管如此,您仍需要配置您的商店,这与您需要支持多租户这一事实无关。

您需要自己构建的是一种在发布时选择正确商店的方法。正如您正确指出的那样,这将需要在您的事件级别上使用一些自定义工具。因此,这可能需要构建一个特定的 EventStore 实现,该实现从事件的元数据中获取租户 ID,并选择正确的商店来发布事件。绝对可行(正如我在其他方看到的那样),但在 Axon 中没有开箱即用。

请注意,Axon Server 可以很好地简化此过程,尽管我知道目前这对您来说可能不是一个可行的解决方案。

【讨论】:

    猜你喜欢
    • 2021-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-23
    • 2014-09-02
    • 2017-08-10
    相关资源
    最近更新 更多