CQRS - 生成特定读取的视图计数

时间:2017-06-16 00:32:55

标签: design-patterns cqrs

如何记录给定资源的读取次数?您可以在读取模型本身上执行此操作,但如果您在需要该信息的命令端(微服务)中具有相同的逻辑,该怎么办? readmodels是否可以将命令发送回微服务以记录下来?这些年来我从未见过一个涵盖readmodels世代命令的例子,但我认为我不能摆脱它。你有什么看法?

2 个答案:

答案 0 :(得分:1)

  

readmodels是否可以将命令发送回微服务以记录下来?

可以从任何地方向您的服务发送命令;你可能不希望它是同步的;但是没有任何根本性的错误,例如,记录某人请求查看。

也就是说,访问读取模型通常是安全的,与HTTP使用的类似。破坏性副作用通常不会内置于读取模型的设计中。

答案 1 :(得分:1)

恕我直言,这个问题的答案取决于该计数器是否与您的域名相关。你说它与写模型相关的事实暗示它实际上是。

如果 与域无关,我只需更新读取模型中每次访问的计数器。周期。

如果 与域相关,那么这意味着你需要触发另一个命令然后影响某种类型的计数器聚合(或者你已经建模了这个)。这意味着只有两个选项可以发送此命令:在客户端或从读取模型本身。

为了确保始终发送命令,无论哪个客户端访问您的读取模型,我都会将其添加到读取模型中。对于写入模型,这非常好,因为它不关心命令来自何处。

所以,长话短说:是的,没关系: - )