http - 使用 axonframework 跨多个实例引发和处理事件

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

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

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

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

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

最佳答案

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

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

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

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

关于http - 使用 axonframework 跨多个实例引发和处理事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43423235/

相关文章:

javascript - 使用 epubjs 和 http ://localhost:3456/fileName/时,react-native android 应用程序中出现空响应错误

codeigniter - 如何在 Codeigniter 上使用 Guzzle?

http - Chromium 最大并发 HTTP 连接数

domain-driven-design - DDD 领域实体与持久化实体

c# - 领域驱动设计 API 问题

http - 为什么 Accept header 带有 HTTP_ 前缀?

oop - 在DDD架构中,唯一ID生成属于哪里?

microservices - 需要使用/Cosmos DB 抵御对事件溯源架构的古怪挑战

architecture - DDD/在图数据库中存储领域事件

asp.net-mvc - 如何使用 ASP.NET MVC 命令查询职责分离 (CQRS)?