【问题标题】:Raising and Handling events across multiple instances using axonframework使用 axonframework 跨多个实例引发和处理事件
【发布时间】:2017-04-15 07:01:03
【问题描述】:

我刚刚开始使用 axonframework 探索基于事件的编程。我看到支持引发和处理事件。

我有一个场景,其中有多个服务使用 http 在不同的实例/jvm 中与每个服务进行通信。

我现在想使用事件进行服务通信。我不确定我们如何通过网络传递事件并让它们由运行在不同 jvm/host 中的服务处理。

axonframework 是否为此提供任何支持,或者我是否应该为此直接与消息传递中间件集成。

【问题讨论】:

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


    【解决方案1】:

    Axon 确实为此提供了支持,尽管在某些情况下,您仍然需要消息中间件。 Axon 专注于 API,而不是消息传递本身。

    如果您使用事件存储,则可以存储您发布的事件,并让不同的节点从该存储中读取(按照自己的节奏)。 Axon 支持基于 JPA/JDBC 和 MongoDB 的事件存储。

    如果您不想/不需要存储事件,则可以改用 Message Broker。 Axon 通过 Spring AMQP 支持 AMQP 消息代理。 Axon 会为你做消息的序列化/反序列化。

    在这种情况下,Axon 的好处在于它将消息传递实现从业务逻辑中抽象出来。业务逻辑只是将事件发布到事件总线,然后 Axon 将其发布到配置的代理。

    【讨论】:

    • 感谢您的回复。能否请您指出一个示例或有关事件总线如何将事件映射抽象为生产者和消费者方面的主题的文档。
    • 查看参考指南:docs.axonframework.org/part3/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-06
    • 2020-11-03
    • 2016-04-09
    • 2018-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多