Axon配置同时使用Subscribing与Tracking Event Processor失败如何解决
Axon 4.x 同时配置订阅式/追踪式事件处理器解决方案
问题根因
你当前配置不生效的核心原因是:全局通过usingSubscribingEventProcessors()指定了所有事件处理器默认使用订阅式模式,仅为myTrackingProcessorGroup注册了追踪处理器的参数配置,但没有显式声明该分组需要使用追踪式处理器,因此会沿用全局默认的订阅式配置。
正确配置示例
@Autowired public void configureEventProcessors(EventProcessingConfigurer processingConfigurer) { // 全局默认使用订阅式事件处理器 processingConfigurer.usingSubscribingEventProcessors(); // 自定义追踪式处理器配置 TrackingEventProcessorConfiguration tepConfig = TrackingEventProcessorConfiguration.forSingleThreadedProcessing(); // 显式为指定分组注册为追踪式事件处理器,绑定自定义配置 processingConfigurer.registerTrackingEventProcessor( "myTrackingProcessorGroup", // 追踪处理器需要绑定EventStore拉取历史事件 config -> config.getComponent(EventStore.class), config -> tepConfig ); }
配置注意事项
- 事件处理器分组名称需要和你
@EventHandler实现类上@ProcessingGroup注解指定的名称完全一致,否则配置不会生效 - 仅显式注册的分组会使用追踪式处理器,其余未单独声明的事件处理器仍会沿用全局默认的订阅式模式
- 如需要为多个分组配置追踪式处理器,重复调用
registerTrackingEventProcessor方法指定不同分组名称即可
内容的提问来源于stack exchange,提问作者Amit Sharma
相关产品推荐
相关产品推荐

