当前,我们正在使用Axon2。我们想将Axon 2升级到4。我们使用Axon 2订阅事件处理器和重播选项。在Axon 4中,一个重大区别是跟踪事件处理器。看来,跟踪处理器必须重播。是否可以订阅和跟踪事件处理器?是否可以将跟踪处理器仅用于重播并保留其余部分?还是必须改变整体结构?
答案 0 :(得分:1)
让我给您一些背景知识以帮助解决问题。
我们使用带有重播选项的Axon 2订阅事件处理器。
在Axon Framework 2.x中,没有SubscribingEventProcessor
的概念。 Axon 2使用事件Cluster
来对事件处理程序进行分组,并提供处理事件的技术逻辑。
是否有可能订阅和跟踪事件处理器?
SubscribingEventProcessor
和TrackingEventProcessor
仅仅是EventProcessor
的不同实现。 EventProcessor
依次用于管理向您编写的事件处理组件提供事件的技术方面。
“事件处理组件”是指带有@EventHandler
批注方法的整个对象。
因此,EventProcessor
受一个或几个事件处理组件的控制。添加后,您可以根据需要选择其中几个组。
最后,确实可以在应用程序中同时包含TrackingEventProcessor
和SubscribingEventProcessor
。
还是必须改变整体结构?
但是我在这里建议向TrackingEventProcessor
的使用迁移。它的作用是将Command端与Query端真正分开。之所以成立,是因为Axon在使用EventStore
时将使用专用线程从TrackingEventProcessor
中提取事件。在处理该事件的同一线程中调用SubscribingEventProcessor
,使您对应用程序更具同步感。
正是这种隔离的力量使Axon成为在应用程序中使用的强大工具,因为它使您可以在需要时自由地进一步分离服务。
因此,从本质上讲,不,您不必使用TrackingEventProcessor
。但是,由于某种原因,它是Axon Framework的默认设置,因为它为应用程序开发人员提供了很多好处(允许重播成为其中之一)。
同时,从TrackingEventProcessor
上的AxonIQ上的this博客开始阅读可能会很有趣。此外,AxonIQ一直在提供在线研讨会,全面介绍Axon,使您也可以提出问题。 Here是相关网络研讨会的链接。