elasticsearch - Elasticsearch读取模型与写入模型同步

标签 elasticsearch synchronization cqrs

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

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

我的问题是:由于我有数百万个PurchaseOrders,这个productName sync是否会成为性能问题?或对建模此类同步有任何建议吗?

最佳答案

尽管我认为更改现有订单上的产品名称不是一个好主意(可能已经生成了发票,并且订单中的产品名称应与发票中的名称相匹配),但该问题仍然有待解决。

您可能希望PurchaseOrder仅保留IDversion(也许还有Product吗?),这样就可以避免进行如此大规模的更新。另一方面,此方法每次您要以其自己的名称转换产品ID时,都需要调用Product聚合根。通过使用缓存,显然可以减轻这种读取的影响。

我想这真的取决于发生这两种情况的次数,然后我将优化发生次数最多的一种情况。

关于elasticsearch - Elasticsearch读取模型与写入模型同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61905910/

相关文章:

indexing - 多语言 ElasticSearch 支持

cqrs - 使用CQRS的阅读方实现方法

c# - EventStore 和 RavenDB 持久化 JsonReaderException

elasticsearch - 从Kibana反规范化数据

amazon-web-services - 从 AWS Beanstalk 访问 AWS Elasticsearch

elasticsearch - Elasticsearch 1.x添加时间戳的字段副本

c - pthreads互斥与信号量

java - 同步的行为

mysql - 在远程服务器上部署 MySQL 数据库

design-patterns - 使用 CQRS 在单个命令处理程序中保留多个内容