cqrs-scaleout:CQRS 多线程示例

时间:2024-06-22 02:23:47
【文件属性】:

文件名称:cqrs-scaleout:CQRS 多线程示例

文件大小:5KB

文件格式:ZIP

更新时间:2024-06-22 02:23:47

Go

微服务 CQRS 横向扩展 本周早些时候,我花了一些时间研究中的一些 CQRS 主题,特别是并发性和可伸缩性。 ####Write 模型并发我们希望有这样一种情况:写入模型聚合可以并行更新,但单个聚合仍然具有实例级并发检查。 例如,两个用户同时尝试重命名文件。 此级别的并发由聚合的存储提供程序实现。 当存储库保存聚合时,存储库会检查要保存的聚合实例是否为最新版本。 如果不是,存储库将抛出错误。 这意味着在上面的示例案例中,最后一个尝试重命名文件的用户将收到 REST api 并发错误。 您在这里有两个选择,1. 将并发错误返回给调用者,或者在大多数情况下框架可以将请求放回队列中,然后重试。 然而,在许多情况下,重试是有用的,例如“添加评论”。 如果聚合是一个评论集合,我们可以重试两个人同时评论同一个项目。 最后一个评论者将简单地重试他们的命令,并且该命令大部分都会成功。 对聚合的任何


【文件预览】:
cqrs-scaleout-master
----subscriber()
--------main.go(3KB)
----shared.go(109B)
----publisher()
--------main.go(1KB)
----README.md(6KB)
----build.sh(206B)

网友评论