gpt4 book ai didi

cqrs - NEventStore:未分派(dispatch)事件的分派(dispatch)如何扩展?

转载 作者:行者123 更新时间:2023-12-04 21:18:03 25 4
gpt4 key购买 nike

尽管我已经深入了解了 NEventStore 上的事务完整性,但我无法理解在连接了许多 NEventStore 实例时 NEventStore 将如何真正扩展。

总结一下我的理解,一个事件被添加到提交中作为未调度,然后它发布到调度程序,然后标记为已调度。

同时,每当您连接 NEventStore 时,它​​都会查找未分派(dispatch)的事件,然后分派(dispatch)它们并将事件标记为已分派(dispatch)。

但是必须有很短的时间跨度,新事件存储的连接将看到即将(从其他存储)分派(dispatch)的未分派(dispatch)事件。新的事件存储将再次分派(dispatch)事件。

想想这个架构:

Client -> Command Bus -> Command Handler -> EventStore persist -> Dispatch to Event Handlers

如果我们有很多 Command Handlers为了处理我们的负载,我们还将保留许多事件。

如果我们经常处理或创建 Command Handlers ,那么许多 EventStore 将被连接起来并导致调度已经调度的事件。

我知道调度程序的消费者应该是幂等的,这不是我的问题。我的问题是,在高负载情况下,我们是否会在命令处理程序的消费者上提供不必要的负载?

最佳答案

这个问题真的很老,但是当我偶然发现它时,我会加两分钱:我认为您不应该为命令处理程序的每个实例连接一个新的 NEventStore 实例。 NEventStore 对象是无状态的,因此您可以在整个过程中使用单个实例(或 AppDomain)。

所以,当然,如果你有多个进程,每个进程都会连接一个新的 NEventStore,你的场景可能会成为现实。但是,影响可能非常小,并且不会过多地妨碍可扩展性。

关于cqrs - NEventStore:未分派(dispatch)事件的分派(dispatch)如何扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18252309/

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