是否可以使用 axon 3.3.3 将所有事件存储在微服务架构中的中央 RDBMS 数据库中?

Iis it possible to store all events in central RDBMS DB in micro service architecture using axon 3.3.3?

我想了解一个 Axon 功能。 目前,我们正在开发一个使用微服务架构的应用程序。 我们希望将所有服务事件存储在中央 RDBMS 数据库中,例如 PostgreSQL。

这样的店可以用吗?

我们使用以下配置将事件存储在同一域数据库中:

@Bean
public AggregateFactory<UserAggregate> userAggregateFactory() {
    SpringPrototypeAggregateFactory<UserAggregate> aggregateFactory = 
        new SpringPrototypeAggregateFactory<>();
    aggregateFactory.setPrototypeBeanName("userAggregate");
    return aggregateFactory;
}

现在我们要将事件存储在中央事件存储数据库中,而不是域数据库中。

首先,任何 Axon 应用程序中的 AggregateFactory 根本没有定义您的事件存储在何处或如何存储。 相反,我建议阅读 Axon Framework 参考指南中有关此事的 Event Bus & Event Store 部分,以解释如何实现这一点。

顺便提一句,对您的问题的简短回答是,您可以拥有一个由 RDBMS(如 PostgreSQL)支持的事件存储来存储您的所有事件。 在给定应用程序的重复实例之间,实际上强烈建议使用相同的存储位置。

一旦你要跨越不同的Bounded Context's,我建议为每个上下文定义不同的事件存储。

最后,您使用的是 版本的 Axon Framework。 我强烈建议至少移动最新的 Axon 3 版本,即 3.4.3,但理想情况下您开始使用 4.1.2。 请注意,Axon 3 上不再有任何积极的开发,因此建议。