【发布时间】:2020-02-05 12:47:56
【问题描述】:
我对 Axon 框架比较陌生,只是评估该框架是否适合我的项目。 this post 中描述了事件的版本控制。但在示例中,EventStore 更改为 Jpa。是否可以使用 Axon Server 作为事件存储来上传事件?还是我误会了什么?
【问题讨论】:
标签: spring-boot axon
我对 Axon 框架比较陌生,只是评估该框架是否适合我的项目。 this post 中描述了事件的版本控制。但在示例中,EventStore 更改为 Jpa。是否可以使用 Axon Server 作为事件存储来上传事件?还是我误会了什么?
【问题讨论】:
标签: spring-boot axon
Axon Framework 提供的Upcaster 逻辑现在偏向于支持您的应用程序的EventStore 类型。因此,为AxonServerEventStore 提供一个UpcasterChain 是完全可行的,其中包含您编写的EventUpcaster 实现。
Upcaster 注册更新
Nicolas 针对我的回复提出了以下问题:
但是upcaster只适用于包含它的服务。 那么是否可以在全局范围内注册一个 upcaster 或者我必须在与 Axon Server 连接的每个服务中实现它?
Axon 服务器不会在连接的 Axon 服务器客户端(也称为 Axon 框架实现)中委托注册的 Upcaster 实例。
这不是因为您可以有一个异构的服务部署,一个具有旧事件版本,一个具有最新版本,包括这样的Upcaster。
从蓝绿部署策略或滚动升级方法来考虑它;您不希望 Axon Server 将 upcaster 直接推送给客户端,因为客户端应该负责他们感兴趣的确切版本。
话虽如此,您将不得不与您的消息一起共享 upcasters,可以说是您的 API 的一部分。无论您是否使用 Axon Server,这都是 Axon 应用程序的要求。话虽如此,至少(即将推出的)4.3 版本的 Axon Server 就是这种情况。我(目前)不知道将来是否会添加这样的功能。
【讨论】: