我想了解 Axon 功能。 目前,我们正在开发一个使用微服务架构的应用程序。 我们希望将所有服务事件存储在中央 RDBMS 数据库中,例如 PostgreSQL。
可以使用这样的商店吗?
我们使用以下配置将事件存储在同一域数据库中:
@Bean
public AggregateFactory<UserAggregate> userAggregateFactory() {
SpringPrototypeAggregateFactory<UserAggregate> aggregateFactory =
new SpringPrototypeAggregateFactory<>();
aggregateFactory.setPrototypeBeanName("userAggregate");
return aggregateFactory;
}
现在我们希望将事件存储在中央事件存储数据库中,而不是域数据库中。
最佳答案
首先,任何 Axon 应用程序中的 AggregateFactory
根本不定义事件的存储位置或方式。
我建议阅读 Event Bus & Event Store Axon 框架引用指南中有关此事的部分解释了如何实现这一目标。
对您的问题的简短回答是是,您可以拥有一个由 RDBMS(例如 PostgreSQL)支持的单个事件存储来存储所有事件。 实际上,强烈建议在给定应用程序的重复实例之间使用相同的存储位置。
一旦你要跨越不同的Bounded Context's ,我建议为每个上下文定义不同的事件存储。
最后,您使用的是旧版本的 Axon Framework。 我强烈建议至少迁移最新的 Axon 3 版本,即 3.4.3,但理想情况下您开始使用 4.1.2。 请注意,Axon 3 不再进行积极的开发,因此提出此建议。
关于axon - 是否可以使用 axon 3.3.3 将所有事件存储在微服务架构中的中央 RDBMS 数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57494811/