如何使用 Axon Server 上传事件?

How to upcast events with Axon Server?

我对 Axon Framework 比较陌生,只是在评估该框架是否适合我的项目。 this post 中描述了事件的版本控制。但在示例中,EventStore 更改为 Jpa。是否可以使用 Axon Server 作为事件存储来上传事件?还是我误会了什么?

Axon Framework 提供的 Upcaster 逻辑现在偏向于支持您的应用程序的 EventStore 类型。因此,向 AxonServerEventStore 提供 UpcasterChain 是完全可行的,其中包含您编写的 EventUpcaster 实现。


Upcaster 注册更新

Nicolas 提出以下问题作为对我的回复的跟进:

But the upcaster is only applied for the service that contains it. So is it possible to register an upcaster globally or do I have to implement it in every service connected with the Axon Server?

Axon 服务器不会在整个连接的 Axon 服务器客户端(又名 Axon 框架实现)中委托已注册的 Upcaster 实例。 这不是因为您可能有异构的服务部署,一个具有旧事件版本,一个具有最新版本,包括这样的 Upcaster.

从蓝绿部署策略,或者滚动升级的方式来思考;您不希望 Axon Server 将升级程序直接推送给客户端,因为客户端应该负责他们感兴趣的确切版本。

话虽如此,您必须与您的消息一起分享 upcasters,可以说是 API 的一部分。无论您是否使用 Axon 服务器,这都是 Axon 应用程序的要求。话虽如此,至少(即将推出的)4.3 版的 Axon Server 就是这种情况。我不知道(还)将来是否会添加这样的功能。