【问题标题】:Is that possible to replay events via RabbitMQ with Axon 3是否可以通过带有 Axon 3 的 RabbitMQ 重播事件
【发布时间】:2017-07-04 14:19:42
【问题描述】:

我有一个使用框架 Axon 3 构建的应用程序。

  • 有 2 个实例 (jvm)
  • 第一个处理命令,并通过 RabbitMQ 通知第二个构建读取模型数据库。
  • 此应用程序 (MongoDB) 有一个事件存储

现在我想构建第三个实例,是否可以通过 RabbitMQ 重播第一个实例的所有历史事件以构建第三个实例的初始状态?以及如何配置?

我尝试了the doc Axons 的答案,似乎我应该使用TrackingEventProcessor 而不是默认的SubscribingEventProcessor,但它不允许与 SpringAMQPMessageSource 一起使用(在文档中提到)

【问题讨论】:

    标签: java domain-driven-design cqrs event-sourcing axon


    【解决方案1】:

    Axon 有两种模式:跟踪和订阅。根据您的事件来源,您可以选择一种样式,有时也可以选择两种样式。

    AMQP 是消息代理的规范。一旦消息被传递,它就会从它所在的队列中删除。因此,从概念上讲,不可能重播这些事件,因为它们不再存在于代理中。

    如果重播很重要,请确保使用存储消息的消息传递机制。在 Axon 中,EventStore 正是这样做的。目前,Axon 只有 EmbeddedEventStore,但您可以让接收节点中的 Event Store 指向与发送节点相同的数据库。

    目前,在 AxonIQ,我们正在开发一个事件存储服务器,它以更简洁的方式处理这个问题(无需在实例之间共享数据源)。

    【讨论】:

    • 谢谢,Event Store Server 对我们来说听起来很有趣,知道发布日期吗?
    • 我们预计能够在 8 月的某个时候发布测试版程序。如果您在 axoniq.io 上订阅时事通讯,我们会在测试版可用时立即通知您。
    • Kafka 可以作为事件总线/事件源的一个选项,而 EventStore 作为事件存储的一个选项吗?
    • @gentiane 基于axoniq.io/docs/axon-framework-3.3 中的点;我会说,是的,这应该是可能的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多