gpt4 book ai didi

java - CQRS 中不同聚合之间的交互

转载 作者:行者123 更新时间:2023-12-01 19:41:27 25 4
gpt4 key购买 nike

所以我对 CQRS 有点陌生(但不完全是初学者)。我试图了解聚合交互方面的最佳实践。我读了一些关于在这些情况下使用集成事件(而不是域事件)的内容,还读了一些关于域服务(据说会链接两个聚合)的内容,但在任何地方都找不到任何好的明确答案(尤其是在 axonIQ Getting Started guide

另一个不太相关的问题是,在分层架构中,通常我们将 Controller 直接链接到服务,并且该服务可以与其他服务(或存储库)交互,而使用 CQRS 时, Controller 通常向聚合发送命令。因此,如果我的 api 调用需要与 2 个聚合交互,我是否必须构建一个中间人服务来从这 2 个服务发送命令(或监听事件)?

最佳答案

CQRS 系统中组件之间的交互可以发生在几个级别上。思考它的方式就像 Maxime 建议的那样,通过微服务,非常清楚地展示了消息传递这一切的焦点。

无论如何,这可能只是发生在一个应用程序/单体中,该应用程序/单体具有多个聚合类型,这些聚合类型一起需要触发某些操作。

我觉得 Maxime 正在为您提供所需的答案。您向其发送命令的聚合实例独立运行,并且根本不直接相互关联。。因此,您会对事件使用react,作为启动两者之间交互的驱动力。

您可以通过使用事件处理组件来监听事件并执行您正在处理的业务事务来实现此目的。如果业务交易稍微复杂一点,那么查看 Saga 可能是一个好的开始。

最后,您指出 Axon 引用指南的“入门”部分对此主题不清楚。我认为这是一个有效的结论,因为从 Axon 的角度来看,这不是入门指南的一部分。看看Saga指南的一部分,以了解聚合和/或有界上下文之间的交互。

关于java - CQRS 中不同聚合之间的交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55303877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com