我希望集群中的所有节点都有相同数量的数据负载。对于默认的亲和性函数,这是不会发生的。
到目前为止,我们有3个节点。我们使用组ID作为亲和密钥,我们有3个组ID (1,2,3)。我们将缓存分区限制为组ID。整体nodes=group IDs=cache分区。以便每个节点具有相等数量分区。
可以编写自定义的亲和性函数吗?我们这样做会失去什么呢?有没有人写过自定义的亲和力函数?
发布于 2019-02-27 20:45:11
亲和力函数不能保证均匀分布在所有节点上。这是统计数据..。而且三个值并不足以确保数据的“公平”分布。
所以,是的,编写一个新的亲和力函数是可行的。缺点是你需要让它变得更快(它被称为很多),而且你会将它硬编码到当前的节点拓扑中。当您选择添加新节点时会发生什么?当一个节点发生故障时会发生什么?此外,您可能会将所有数据放在三个分区中,这会使向外扩展变得更加困难(这是Ignite架构的主要优势之一)。
作为另一种选择,我会看看您的数据模型。将数据分成三个块太粗糙了,无法自动工作。
https://stackoverflow.com/questions/54901956
复制相似问题