【发布时间】:2020-11-14 04:28:39
【问题描述】:
我想通过我的聚合事件处理程序之一将事件发布到 axon Kafka 主题,因为我使用 kafka 作为我的事件总线。这样做的正确方法是什么?我应该直接将消息推送到主题还是可以在这种情况下使用AggregateLifecycle#apply(event)?
我通过我想要发布另一个事件的事件处理程序之一从我的聚合中发布了多个事件。我正在使用 axon 4.2
【问题讨论】:
标签: axon
我想通过我的聚合事件处理程序之一将事件发布到 axon Kafka 主题,因为我使用 kafka 作为我的事件总线。这样做的正确方法是什么?我应该直接将消息推送到主题还是可以在这种情况下使用AggregateLifecycle#apply(event)?
我通过我想要发布另一个事件的事件处理程序之一从我的聚合中发布了多个事件。我正在使用 axon 4.2
【问题讨论】:
标签: axon
最简单的方法是开始使用Kafka Extension Axon 提供。共享存储库包含所有必要的代码,以从 Kafka 主题创建 Axon Event 的发布端和消费端。为方便配置,该项目中也有一个 Spring Boot Starter
添加,存储库有一个 (Kotlin) 示例项目,显示如何配置它,您可以找到 here。最后,关于如何设置一切的完整描述,我强烈建议阅读 Axon 的参考指南,尤其是 Kafka 页面here。
我想建议您认为此扩展非常适合在 Axon 和非 Axon 应用程序之间进行通信,使 Kafka 成为“企业服务总线”的一种形式。在 Axon Framework 中将其用作 the EventBus 替换是可行的,但需要对您进行大量微调。在这些情况下使用Axon Server 会更明智,或者如果您确实必须,直接在应用程序之间共享包含您的事件的数据源。
【讨论】:
EventGateway 或 EventBus 上发布的事件。它只会摄取事件并将其放在您配置的 Kafka 主题上。不用担心!