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