目前我们使用的是Axon 2,我们想将Axon 2升级到4。我们使用的是带有重放选项的Axon 2订阅事件处理器,在Axon 4中,一个显著的区别是跟踪事件处理器。在Axon 4中,一个显著的区别是跟踪事件处理器。看来,跟踪事件处理器是重放所必须的。是否可以拥有订阅和跟踪事件处理器?是否可以只在重播时使用跟踪处理器,而不使用其他处理器?还是必须改变整个结构?
让我给你一些背景资料来帮助解决这个问题。
我们使用了Axon 2带有重放选项的订阅事件处理器。
在Axon Framework 2.x中,并没有这个概念。SubscribingEventProcessor
. Axon 2使用的事件 Cluster
的来分组事件处理程序,并提供处理事件的技术逻辑。
是否可以有认购和跟踪事件处理程序?
该 SubscribingEventProcessor
和 TrackingEventProcessor
的不同实现。EventProcessor
. 该 EventProcessor
反过来又用于管理向你编写的事件处理组件提供事件的技术方面。
我所说的 "事件处理组件",是指整个对象中包含有 @EventHandler
中的注释方法。
因此: EventProcessor
的是控制一个或几个事件处理组件。补充一下,你可以根据自己的需要拥有其中的几个组。
最后,确实可以同时拥有两个 TrackingEventProcessor
s和 SubscribingEventProcessor
的应用程序。
还是必须改变整个结构?
然而,在这里我建议迁移到使用的是 TrackingEventProcessor
s. 它的作用是真正地将你的命令端和查询端分开。这是因为Axon将使用专门的线程将事件从 EventStore
当使用 TrackingEventProcessor
. A SubscribingEventProcessor
在处理事件的同一线程中调用,这给你的应用程序带来了更多的同步感。
正是这种隔离的力量使得Axon成为你的应用程序中的一个强大的工具,因为它为你提供了进一步解耦你的服务的自由,只要有需要。
因此,从本质上讲,不,你不一定要使用Axon。TrackingEventProcessor
. 然而,Axon框架中的默认设置是有原因的,因为它为应用开发者提供了很多好处(允许重播就是其中之一)。
同时,你可能会感兴趣的是阅读一下 这个 来自AxonIQ的博客 TrackingEventProcessor
. 此外,AxonIQ一直在举办网络研讨会,提供关于Axon的全部快速概述,让你也可以选择提问。这里是是网络研讨会的链接。