1

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

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

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

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

4

1 回答 1

2

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

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

如果您不想/不需要存储您的事件,您可以使用 Message Broker 代替。Axon 通过 Spring AMQP 支持 AMQP 消息代理。Axon 将为您进行消息的序列化/反序列化。

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

于 2017-04-18T11:59:28.297 回答