gpt4 book ai didi

asp.net-mvc - 需要时在 CQRS 中提供同步行为?

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

我将 ASP.NET MVC 与 NServiceBus 一起使用,并且由于绝大多数命令都可以在考虑最终一致性的情况下执行,因此在少数任务中,立即一致性似乎可以简化事情。

我对用于实现此目的的各种方法进行了大量研究,但很少有人提出任何理由来说明为什么该特定方法更可取。我没有在生产环境中使用 NSB 的任何经验,因此也很高兴知道是否有任何方法以任何方式限制了可扩展性。

以下是我遇到的大致方法:-

  • 没有同步,将信息伪造回客户端。 我对这个的保留首先,你必须处理你伪造数据并且命令失败的情况(不太可能的情况),更重要的是,如果命令中任何数据的初始化很复杂,那么伪造的能力无论如何,这些数据不一定可行。
  • 任务完成时回复(或发布客户端接收的事件)。 我对此的保留是,这意味着分布式架构变得更加复杂,我不确定负载平衡的客户端是否会导致问题,因为只有一台客户端机器应该收到回复。
  • 轮询读取存储直到数据存在。 我对此的保留是它使读取存储比其他选项承受更多负载。

  • 有没有比以上三个更好的选择,如果有,为什么?如果不是,以上三个哪个更好,为什么?

    我假设答案不是主观的,一个比其他更适合使用 NServiceBus 在 CQRS 中实现命令基础设施。

    谢谢。

    最佳答案

    我对此的看法是实际端点不应该执行工作,而是将其交给某个“任务”(应用程序服务/操作脚本)对象。该对象正在立即执行工作。

    因此,对于您绝对必须具有 100% 一致性的情况,而不是调用相同的任务对象,而不是发送命令供以后处理。您可能仍需要该命令用于其他场景。

    关于asp.net-mvc - 需要时在 CQRS 中提供同步行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18161230/

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