You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Axon Saga添加@ProcessingGroup后异常从头处理事件的问题咨询

Axon Saga添加@ProcessingGroup后异常重放历史事件的问题

问题详情

  • 之前创建带@ProcessingGroup注解的Saga时,跟踪令牌会基于事件流的头部(最新全局索引)初始化,不会重放历史事件。
  • 最近新增同配置的Saga时,该Saga却从事件流的尾部开始处理(即重放所有历史事件),且没有配置任何专属处理器。
  • 删除跟踪令牌并移除@ProcessingGroup注解后,Saga恢复从最新事件位置开始处理的正常行为。
  • 即使清空所有跟踪处理器的配置,现象依旧:
    • 加@ProcessingGroup注解 → 从头处理所有历史事件
    • 显式配置头部令牌或不加注解 → 行为恢复正常

示例代码

object EventProcessors {
   const val onboardingSaga = "onboardingSaga"
}

@Saga
@ProcessingGroup(EventProcessors.onboardingSaga)
class OnboardingSaga {

    @StartSaga
    @SagaEventHandler(associationProperty = "onboardingId")
    fun on(event: OnboardingStartedEvent) {
      // 业务逻辑代码
    }
}

环境

Spring Boot 搭配 Axon 4.6.2

原因

Axon中每个@ProcessingGroup对应独立的跟踪令牌存储。首次使用新的处理器组名称时,Axon默认会将令牌初始化为事件流的起始位置,也就是从头消费所有事件;而未添加@ProcessingGroup的Saga使用默认处理器组,默认会从最新的事件位置初始化令牌。

解决办法

  • 代码配置初始令牌位置:给目标处理器组显式指定初始令牌为事件流尾部(最新事件位置),Spring Boot配置类示例:
    Java版本:
    @Configuration
    public class AxonProcessorConfig {
        public AxonProcessorConfig(EventProcessingConfigurer configurer) {
            configurer.registerTrackingEventProcessorConfiguration(
                "onboardingSaga",
                cfg -> cfg.initialTrackingToken(streamableSource -> streamableSource.createTailToken())
            );
        }
    }
    
    Kotlin版本:
    @Configuration
    class AxonProcessorConfig(configurer: EventProcessingConfigurer) {
        init {
            configurer.registerTrackingEventProcessorConfiguration(
                EventProcessors.onboardingSaga,
                { cfg -> cfg.initialTrackingToken { streamableSource -> streamableSource.createTailToken() } }
            )
        }
    }
    
  • 手动初始化令牌:若不想修改代码,可在应用首次启动前,直接在Axon的跟踪令牌存储表(通常是tracking_token_entry)中插入对应处理器组的尾部令牌记录。
  • 移除@ProcessingGroup注解:如果该Saga不需要独立的处理器组,直接去掉注解,使用默认处理器组,即可自动从最新事件位置开始处理。

内容的提问来源于stack exchange,提问作者Vaelyr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 13:25:03