.net - 当您的读取和写入具有相似的扩展要求时,CQRS 是否仍然有用?
问题描述
我有一个 .NET MVC 电子商务购物篮应用程序,它跟踪客户放置在购物篮中的物品。我们使用存储库模式来读取/写入购物篮表中的项目,有时这个应用程序会承受来自用户的巨大压力,从而导致 SQL 数据库受到影响。
我想知道使用 CQRS 是否有帮助,但在这种情况下,两种情况下对篮子的读/写次数都非常高。另外(除非我被误解了),感觉最终一致性在这里不太合适,因为对篮子的更新需要立即读取,以便用户可以跟踪并查看他们添加的内容。一秒钟的延迟会引起巨大的混乱。
这是一个完全不适合 CQRS 的场景吗?只关注水平扩展应用程序和数据库会更好(可能通过将客户分成不同的组),还是有其他架构样式可以提供帮助?
解决方案
如果您正在执行简单的 CRUD,则 CQRS 并不是您正在寻找的模式。我会更多地研究缓存模式。一个小缓存在这里帮助扩展小表有很长的路要走。如果您愿意利用最终一致性,将其设为回写缓存,用户将只能看到缓存,而数据存储将滞后于用户......这对于正在购买东西的用户来说似乎有点冒险,并且在添加到购物车和“结帐”之间可能有很短的时间。
推荐阅读
- c# - .Net 中的执行上下文和仅反射上下文是什么?
- python - 单元测试似乎工作......但某些超过 13 位的大整数输入失败
- android - 有人可以帮助我了解成功侦听器的firebase逻辑吗
- java - 如何从一个 for 循环中抛出线程?
- excel - Excel VBA:如何在application.undo之后在更改事件中记录用户按键?
- ios - 故事板中的 CollectionView 正在覆盖单元格大小
- ios - 应用程序在后台花费了意想不到的时间
- php - PHP 代码中的 SQL 查询不会将正确的信息写入数据库
- flutter - 使用标签点击方法时如何隐藏底部导航标签栏
- git - 当 2 个开发人员在同一分支上工作时需要签入 30 个通用文件