首页 > 解决方案 > 当您的读取和写入具有相似的扩展要求时,CQRS 是否仍然有用?

问题描述

我有一个 .NET MVC 电子商务购物篮应用程序,它跟踪客户放置在购物篮中的物品。我们使用存储库模式来读取/写入购物篮表中的项目,有时这个应用程序会承受来自用户的巨大压力,从而导致 SQL 数据库受到影响。

我想知道使用 CQRS 是否有帮助,但在这种情况下,两种情况下对篮子的读/写次数都非常高。另外(除非我被误解了),感觉最终一致性在这里不太合适,因为对篮子的更新需要立即读取,以便用户可以跟踪并查看他们添加的内容。一秒钟的延迟会引起巨大的混乱。

这是一个完全不适合 CQRS 的场景吗?只关注水平扩展应用程序和数据库会更好(可能通过将客户分成不同的组),还是有其他架构样式可以提供帮助?

标签: .netdatabasearchitecturecqrs

解决方案


如果您正在执行简单的 CRUD,则 CQRS 并不是您正在寻找的模式。我会更多地研究缓存模式。一个小缓存在这里帮助扩展小表有很长的路要走。如果您愿意利用最终一致性,将其设为回写缓存,用户将只能看到缓存,而数据存储将滞后于用户......这对于正在购买东西的用户来说似乎有点冒险,并且在添加到购物车和“结帐”之间可能有很短的时间。


推荐阅读