【问题标题】:How to configurate EventTrackerStatusChangeListener in Spring Boot如何在 Spring Boot 中配置 EventTrackerStatusChangeListener
【发布时间】:2020-09-21 09:17:29
【问题描述】:

我们正在使用 Spring Boot + Axon Framework + Mongo(作为事件源,cqrs 视图) 现在我必须明白我所有活动的回复都已完成。正如我在文档中看到的:

https://docs.axoniq.io/reference-guide/axon-framework/monitoring-and-metrics#event-tracker-status 可以通过 TrackingEventProcessorConfiguration 为 TrackingEventProcessor 配置 EventTrackerStatusChangeListener

我们可以只配置 EventTrackerStatusChangeListener 并且我可以对我需要的所有 reply 更改做出反应。但是经过一些研究和尝试,我意识到它不能轻松配置为自动配置的 trackingEventProcessors(由包路径自动命名,或使用@ProcessingGroup)不是吗?

我的问题是:我可以将 EventTrackerStatusChangeListener 配置为将它用于所有自动配置的 trackingEventProcessors 吗?如何?如果不是,最好的方法是什么?

【问题讨论】:

    标签: mongodb spring-boot axon


    【解决方案1】:

    EventTrackerStatusChangeListener 只能通过TrackingEventProcessorConfiguration 类注册TrackingEventProcessor (TEP)。 如果要定义默认侦听器,当前(Axon 4.4.2)必须定义默认的TrackingEventProcessorConfiguration 才能使用。

    这可以通过使用EventProcessingConfigurer#registerTrackingEventProcessorConfiguration 方法来实现。 请注意,这意味着所有您的 TEP 将使用相同的 TrackingEventProcessorConfiguration。如果您想为每个 TEP 定义一个特定的 TrackingEventProcessorConfiguration,您必须为每个要定义的 TEP 使用以下函数:

    EventProcessingConfigurer#registerTrackingEventProcessor(
        String, 
        Function<Configuration, StreamableMessageSource<TrackedEventMessage<?>>>,
        Function<Configuration, TrackingEventProcessorConfiguration>
    )
    

    第一个String 参数是处理器的名称(例如,您可以在事件处理组件上使用@ProcessingGroup 注释定义)。第二个参数定义相关 TEP 使用的消息源。您可以使用Function 参数中提供给您的Configuration 来返回Configuration#eventStore 以检索配置的常规事件存储。第三,您将提供您的 TEP 特定配置。

    【讨论】:

      猜你喜欢
      • 2014-07-26
      • 1970-01-01
      • 2019-12-15
      • 2018-03-16
      • 2014-04-18
      • 1970-01-01
      • 2017-12-21
      • 2021-05-22
      • 2021-02-19
      相关资源
      最近更新 更多