是否可以使用轴突3.3.3将所有事件存储在微服务体系结构的中央RDBMS DB中?

时间:2019-08-14 12:34:44

标签: axon

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

可以使用这样的商店吗?

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

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

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

1 个答案:

答案 0 :(得分:2)

首先,任何Axon应用程序中的AggregateFactory都没有定义事件的存储位置或存储方式。 相反,我建议阅读有关此问题的Axon Framework参考指南的Event Bus & Event Store部分,以解释如何实现此目的。

问题的简短答案是,您可以有一个由PostgreSQL之类的RDBMS支持的单个事件存储,用于存储所有事件。 实际上,强烈建议在给定应用程序的重复实例之间使用相同的存储位置。

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

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