Elasticsearch读取模型与写入模型同步。

问题描述 投票:0回答:1

我的应用程序遵循CQRS策略,将读模型和写模型分开。我有一个产品和多个与该产品相关的采购订单。

PurchaseOrder读取模型在Elasticsearch中,并且附加了产品名称。现在,如果我在写模型中更改产品名称,那么我需要在读模型中相应地更新所有PurchaseOrder的productName字段(使用Elasticsearch的批量更新API)。

我的问题是:由于我有几百万个PurchaseOrderers,这个productName同步会不会是一个性能问题?或者对这种同步建模有什么建议?

elasticsearch synchronization cqrs
1个回答
0
投票

虽然我不相信在现有订单上更改产品名称是一个好主意(发票可能已经生成,订单中的产品名称应该与发票中的名称相匹配),但这个问题仍然有价值。

您可能希望您的 PurchaseOrder 只保留 ID (也许还有 version?")中的 Product,这样就可以避免这样的大规模更新。另一方面,这种方法需要调用到 Product 聚合根,每当你想把产品的ID翻译成自己的名字时,就会对其进行读取。这种读取的影响显然可以通过使用缓存来减轻。

我想真的要看这样两种情况的发生次数,然后我会优化发生次数最多的一种。

© www.soinside.com 2019 - 2024. All rights reserved.