【发布时间】:2020-05-07 19:36:32
【问题描述】:
我们正在研究从 axon 重新运行精心挑选的事件。用例将遵循以下内容。
如果即使命令成功,用户的注册事件也失败了,我们希望为该特定事件处理程序重新运行该特定事件。
我们研究过使用跟踪事件处理器,但这似乎是从特定时间点重放一组事件。但是,在我们的例子中,如果昨天有 100 个事件,我们只想在中间重新运行一个特定事件。
目前我们正在迁移到 Axon,因此决定主要使用 SubscriptionEventProcessors,因为它更加同步(即错误通过命令处理程序传播)。而且我们确实理解订阅处理器是无状态的,因为它们只处理通过事件总线接收到的内容。
所以我假设我们不能使用跟踪处理器?相反,我们需要加载特定事件并将其重新推送到事件总线?
我们怎样才能做到这一点? (有无上述建议)
此外,关于识别异常,我们正在考虑使用方面和日志记录并读取特定日志行以查找异常。然而,我们确实注意到轴突和弹簧靴的跟踪模块。 https://github.com/AxonFramework/extension-tracing 但是它被提到处于测试阶段,我们也找不到太多参考文档。是否还有更好的基于轴突的解决方案?
【问题讨论】:
-
我这边的一个小评论:扩展跟踪不再处于测试阶段 =)
-
很好,刚刚注意到自述文件已更新。还有扩展特定的参考文档吗?
-
看看official doc有没有帮助,如果没有,有一篇关于它的博文here。
-
有点离题,所以我们成功地使用了带有 axon 的 jaeger 和 spring boot 自动配置,但是当我们尝试使用 spring sleuth(它是在勇敢之上的 springs 分布式跟踪库)时,我们包括了勇敢- opentracing、spring-cloud-starter-sleuth 和 spring-cloud-sleuth-zipkin 依赖项。但是在这个配置中,轴突痕迹不会被发送到 jaeger,关于配置应该是什么的任何想法?
-
我们认为是正确的,但需要进行更多测试。 BraveTracer 没有被创建,所以我们必须手动创建它。
标签: java spring spring-boot axon