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

标签 axon

我想了解 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/

相关文章:

spring-boot - Axon Framework 中两个聚合体之间的通信

java - Axon - 投影还是事件丰富器?

cqrs - 如何在axon框架中处理saga发送的命令

domain-driven-design - 如何使用事件溯源实现复杂形式的命令和事件?

java - Axon EventHandler 未接收事件

java - 为什么 Axon Framework 中的 RetryScheduler 在出现 NoHandlerForCommandException 后不重试?

cqrs - Axon 框架的排序策略如何在状态方面发挥作用

java - Axon 3 未找到处理程序

java - Axon框架-GZIP JSON数据

axon - org.axonframework.serialization.UnknownSerializedTypeException(无法反序列化消息。序列化类型未知 :