2016-08-22 49 views
0

我们担心为域事件使用单个Mongo集合(domainevents)的性能。Axon框架 - 为每个聚合根使用单独的Mongo域事件集合

将domainevents集合拆分为每个聚合根分离集合是一个好主意吗?

我们有查询模型,它是基于多个聚合根的事件生成的。如果我们将domainevents划分为多个集合,那么Axon仍然会保留聚合根上的事件顺序吗?

这是否是一个好主意?

回答

1

这里有几个问题,需要不同的知识来回答。我不是MongoDB的专家,但是我知道我是Axon的创始人。

Axon中的MongoEventStore本身不支持域事件的多个集合。所以你的订单保存查询的答案是:它不会工作,除非你自己建立对它的支持。然后,订单将根据您的建造方式进行保证。

你也可以考虑分割Mongo Collection。使用聚合标识符作为分片键可以保证对聚合流的查询命中单个分片。根据文档,建议避免不包含此分片键的查询。

处理此性能问题的最佳方法是执行性能测试。查看延迟和吞吐量随集合大小的增长如何受到影响。添加正确的索引可能会有帮助。