首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向外扩展,使用CQRSish模式的多个读取数据库

向外扩展,使用CQRSish模式的多个读取数据库
EN

Stack Overflow用户
提问于 2011-03-19 23:41:23
回答 1查看 835关注 0票数 5

我使用的是CQRS风格的模式(无事件源),我只是将我的读写分离到两个独立的应用程序边界中。

现在,该应用程序在一个SQL 2008数据库上运行。我想添加多个读取数据库来分配工作负载,因为数据量开始变高。

我需要SQL 2008中的一个解决方案,在这个解决方案中,我可以更新单个数据库,并将更改实时复制/传播到其他节点。这只需要是单向传播,因为应用程序将只写入单个“主”数据库。

我读过关于对等事务复制的文章。任何使用过它的人,更新子节点的延迟有多长?

还有其他的解决方案吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-20 13:12:15

如果你没有在域/命令端使用事件源,那也没问题。但这并不一定会阻止您将读取端的所有事件存储在某种“事件”表中。在这样做时,它允许您销毁视图模型表,并从read model数据库中" events“表中存储的所有事件重建。

这样做的原因是为了扩展你的阅读端。由于您现有的read DB承受着压力,无法再承受负载,而不是尝试从主"read数据库“进行复制--只需在其他一些硬件上创建另一个数据库实例,该实例将从"events”表中填充自身。然后让这个额外的读取数据库订阅由您的域生成的事件。(一旦您了解了发生了什么,您实际上会希望首先订阅,然后填充表,这样您就不会错过发布的事件)

这允许您拥有两个读取数据库,它们是兄弟数据库,但彼此之间不进行通信。它们只是监听来自域的事件,更新读取的模型表,并将接收到的事件添加到某种本地“事件”表中。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5363060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档