Chr*_*ken 5 c# scalability sql-server-2008 cqrs
我正在使用CQRS样式模式(无事件源)我只是将读取和写入分成两个独立的应用程序边界.
目前,该应用程序针对一个SQL 2008数据库.我想添加多个读取数据库来分配工作量,因为卷开始变高.
我需要SQL 2008中的解决方案,我可以在其中更新单个数据库,并将更改实时复制/提供给其他节点.这只需要是单向传播,因为应用程序只会写入单个"主"数据库.
我读过有关点对点事务复制的内容.任何使用过它的人,更新子节点有多少延迟?
还有其他方法吗?
如果您不在域/命令端使用事件源,那也没有问题。但这不一定会阻止您将读取端的所有事件存储在某种“事件”表中。在此过程中,它允许您销毁视图模型表并根据读取模型数据库中“事件”表中存储的所有事件进行重建。
这样做的原因是为了扩展你的阅读面。当您现有的读取数据库面临压力并且无法再承受负载时,无需尝试从主“读取数据库”进行复制 - 只需在其他硬件上创建另一个数据库实例,并从“事件”表中填充自身即可。然后让这个额外的读取数据库订阅您的域生成的事件。(一旦您了解正在发生的事情,您实际上会想要先订阅,然后填充表,这样您就不会错过已发布的事件)
这允许您拥有两个兄弟读取数据库,但彼此不通信。他们只是侦听来自域的事件,更新读取的模型表,并将接收到的事件添加到某种本地“事件”表中。
| 归档时间: |
|
| 查看次数: |
652 次 |
| 最近记录: |