我想了解Axon功能。 当前,我们正在使用微服务架构开发应用程序。 我们希望将所有服务事件存储在中央RDBMS数据库中,例如PostgreSQL。
可以使用这样的商店吗?
我们使用以下配置将事件存储在同一域DB中:
@Bean
public AggregateFactory<UserAggregate> userAggregateFactory() {
SpringPrototypeAggregateFactory<UserAggregate> aggregateFactory =
new SpringPrototypeAggregateFactory<>();
aggregateFactory.setPrototypeBeanName("userAggregate");
return aggregateFactory;
}
现在,我们希望将事件存储在中央事件存储数据库中,而不是域DB中。
答案 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不再进行任何主动开发,因此是建议。