我想知道哪种方法更好。我们是否应该在网格上使用细粒度的实体,然后再从细粒度的实体中构造功能丰富的领域对象。
或者,我们应该构造过程粒度域对象,并将其直接存储在网格和我们仅用于持久性的实体上。
编辑:我认为这个问题尚未完全回答。到目前为止,我们有来自Hazelcast,Gemfire和Ignite的评论。我们缺少Infinispan,连贯性....那是为了完整起见:)
最佳答案
我同意Valentin,它主要取决于您要使用的系统。通常,我会考虑直接存储增强的域对象,无论如何,如果您只有很少的对象,但是它们的大小很大,您最终会在节点上分配不正确且内存使用不均。如果您的域对象是“正常”大小的并且有足够的空间,则不必担心。
在Hazelcast中,最好直接存储这些对象,但要注意使用良好的序列化系统,因为Java序列化速度很慢。如果要查询域对象内部的属性,还应该考虑添加索引。