当前位置: 首页 > 知识库问答 >
问题:

订阅事件处理器和跟踪事件处理器可以共存吗?

闻人宇定
2023-03-14

目前我们正在使用Axon 2。我们想把Axon 2升级到4。我们使用Axon 2订阅带有重放选项的事件处理器。在Axon 4中,一个显著的区别是跟踪事件处理器。看来,跟踪处理器是重播的必备。有可能拥有订阅和跟踪事件处理器吗?有没有可能把跟踪处理器只用于重放,剩下的就不管了?还是必须改变整个结构?

共有1个答案

松增
2023-03-14

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

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

在Axon框架2.x中,没有订阅事件处理器的概念。Axon 2 使用事件群集对事件处理程序进行分组,并提供处理事件的技术逻辑

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

订阅事件处理器和跟踪事件处理器只不过是事件处理器的不同实现。而事件处理器则用于管理向您编写的事件处理组件提供事件的技术方面。

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

因此,事件处理器控制着一个或多个事件处理组件。此外,您可以根据需要拥有其中的几个组。

总而言之,在应用程序中确实可以同时拥有TrackingEventProcserSubscribingEventProcser

还是必须改变整个结构?

在这里,我建议改用< code > TrackingEventProcessor ,它真正将命令端和查询端分开。这是因为当使用< code > tracking event processor 时,Axon将使用专用线程从< code>EventStore中提取事件。在处理事件的同一个线程中调用< code > SubscribingEventProcessor ,这使您对应用程序有一种更加同步的感觉。

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

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

与此同时,阅读AxonIQ在TrackingEventProcser上的博客可能会很有趣。此外,AxonIQ一直在举办网络研讨会,提供对Axon的全面快速概述,让您也可以选择提问。这是有问题的网络研讨会的链接。

 类似资料:
  • 但是,这个解决方案的问题是它是不可伸缩的。我必须从一开始就知道我必须有多少节点和线程,因为以后不可能更改它:如果我增加并重新启动处理器,什么也不会发生。更糟糕的是,如果我减少了段计数:对于“删除”的段来说,事件永远不会被处理! 理想情况下,它应该能够指定每个节点应该使用的线程数。之后,当新的节点添加到处理器中时,段的数量应该相应地扩大。类似地,如果我移除节点,段的数量应该会减少。这可能与轴突,或它

  • 主要内容:v-on,v-on,v-on事件监听可以使用 v-on 指令: v-on <div id="app"> <button v-on:click="counter += 1">增加 1</button> <p>这个按钮被点击了 {{ counter }} 次。</p> </div> <script> new Vue({ el: '#app', data: { counter: 0 } }) </script> 通常情况下,我们需

  • 在这一步,你会在手机详细信息页面让手机图片可以点击。 请重置工作目录: git checkout -f step-10 手机详细信息视图展示了一幅当前手机的大号图片,以及几个小一点的缩略图。如果用户点击缩略图就能把那张大的替换成自己那就更好了。现在我们来看看如何用AngularJS来实现它。 步骤9和步骤10之间最重要的不同在下面列出。你可以在GitHub里看到完整的差别。 控制器 app/js/

  • 监听事件 可以用 v-on 指令监听 DOM 事件来触发一些 JavaScript 代码。 示例: <div id="example-1"> <button v-on:click="counter += 1">增加 1</button> <p>这个按钮被点击了 {{ counter }} 次。</p> </div> var example1 = new Vue({ el: '#exa

  • > 我的客户第一次加入我们的订阅计划时,我创建了一个事务(称为启动事务),并使用Stripe的API创建新的订阅,并在上述事务中存储订阅对象返回。 我还使用webook来捕捉Stripe的事件。我最大的目的是处理经常性付款(发送收费成功或失败的通知,以及客户互动的东西)。我捕捉事件invoice.payment_succeeded检测它是一个重新计费。我也创建了一个事务(调用RECURRENCE)

  • 我们需要在constructor中对于事件与对应的handler函数进行绑定. 大多数时候我们在发出DOM事件的组件内部写我们的handler函数. 在下面的例子中,我们在组件内部创建了一个click handler, 因为我们想所有的Swithcer Component当被点击时,做出同样的响应. class Switcher extends React.Component { render