【问题标题】:Axon Event Handler Read All Events Each Restart轴突事件处理程序读取所有事件每次重启
【发布时间】:2021-11-29 16:36:51
【问题描述】:

我在 Spring 应用程序中使用 Event Handler 来查询我在 axon 框架中的事件。我可以从我的命令中放置一个事件,我可以从我的查询应用程序中读取它们。直到重新启动时间没问题但是当我重新启动我的查询应用程序时,每次它在开始时再次读取相同的事件并导致重复过程。阅读时如何提交事件?

ToMyAxonConfig

@Bean
    public TokenStore tokenStore(Serializer serializer, EntityManagerProvider entityManagerProvider) {
      return JpaTokenStore.builder()
                .entityManagerProvider(entityManagerProvider)
                .serializer(serializer)
                .build();
    }

   @Autowired
    public void configureProcessors(EventProcessingConfigurer eventProcessingConfigurer) {
        TrackingEventProcessorConfiguration tepConfig = TrackingEventProcessorConfiguration.forSingleThreadedProcessing().andInitialTrackingToken(StreamableMessageSource::createHeadToken);
        eventProcessingConfigurer.registerTrackingEventProcessorConfiguration(config -> tepConfig);
    }

【问题讨论】:

    标签: spring-boot axon axon-framework


    【解决方案1】:

    我感觉你没有配置TokenStore。 在这种情况下,Axon Framework 将为您提供一个 InMemoryTokenStore 实现,这意味着每次重新启动时,您都将从您的事件存储中再次获取所有事件,因为您的应用程序没有令牌的“状态”。

    您可以查看ref-guide 以了解更多信息以及如何从多个选项中正确配置一个。

    我如何在阅读时提交事件?

    此外,为了更正此处的单词用法,事件是在您的事件存储中“提交”的。如果您在谈论您的查询端应用程序,您不会在那里提交事件,而只是根据事件保存状态。

    【讨论】:

    • 提交的意思是重启后我不想再发生同样的事件我的事件处理程序因为这个原因我说过。我试试你的建议谢谢卢卡斯
    • ,我在我的代码中添加了两个不同的块,然后它在重新启动后停止读取相同的事件。你能检查我的代码吗,你有其他建议或最好的括号来做到这一点,或者我的补充就足够了(您可以签入第一篇文章)
    • 如果您使用的是 Spring Boot,只需添加 spring-data-jpa 依赖项即可,您无需配置任何内容。如果您不使用 Spring Boot,那么按照您的方式创建 JpaTokenStore 就可以了。不需要关于你的处理器的其他配置,并且与 TokenStore 无关。
    • 我用的是spring boot,但是如果不放TrackingEventProcessorConfiguration tepConfig = TrackingEventProcessorConfiguration.forSingleThreadedProcessing().andInitialTrackingToken(StreamableMessageSource::createHeadToken);这部分时间 jpatokenstore 在我的情况下是不够的
    • 应该是,他们在做不同的事情!其中之一是使您的令牌存储持久化,这意味着您不会忘记已处理的内容。另一种是在流的头部开始标记,这意味着一个新的标记将从头部而不是尾部开始。你也可以分享你的 pom 和依赖项吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多