2

目前我们正在使用 Axon 2。我们想将 Axon 2 升级到 4。我们使用带有重播选项的 Axon 2 订阅事件处理器。在 Axon 4 中,一个显着的区别是跟踪事件处理器。看来,跟踪处理器是重放的必备品。是否可以订阅和跟踪事件处理器?是否可以仅将跟踪处理器用于重播并留下其余部分?还是必须改变整个结构?

4

1 回答 1

1

让我给你一些背景知识来帮助你解决这个问题。

我们使用带有重播选项的 Axon 2 订阅事件处理器。

在 Axon Framework 2.x 中,没有SubscribingEventProcessor. Axon 2 使用 eventCluster对事件处理程序进行分组,并提供处理事件的技术逻辑。

是否可以订阅和跟踪事件处理器?

SubscribingEventProcessorTrackingEventProcessor只不过是 的不同实现EventProcessor。反过来EventProcessor用于管理向您编写的事件处理组件提供事件的技术方面。

我所说的“事件处理组件”是指包含@EventHandler注释方法的整个对象。

因此,EventProcessors 控制一个或多个事件处理组件。补充说,您可以拥有几个您认为合适的组。

结论是,在一个应用程序中确实有可能同时拥有TrackingEventProcessors 和SubscribingEventProcessors 。

还是必须改变整个结构?

然而,在这里我建议转向使用TrackingEventProcessors。它的作用是真正将您的命令端与查询端分开。这成立,因为 Axon 将使用专用线程从EventStore使用TrackingEventProcessor. ASubscribingEventProcessor在将处理事件的同一线程中调用,这使您对应用程序有更同步的感觉。

正是这种隔离的力量使 Axon 成为在您的应用程序中使用的如此强大的工具,因为它为您提供了在需要时进一步解耦服务的自由。

所以本质上,不,你不必使用TrackingEventProcessor. 然而,它是 Axon Framework 中的默认设置是有原因的,因为它为应用程序开发人员提供了很多好处(允许回放是其中之一)。

同时,阅读AxonIQ 上的这个TrackingEventProcessor博客可能会很有趣。此外,AxonIQ 一直在提供网络研讨会,提供完整的 Axon 快速概览,让您也可以选择提问。是相关网络研讨会的链接。

于 2020-06-11T13:06:45.833 回答