如何知道一个缓存条目驻留在哪些节点
How to know which nodes does one cache entry reside
我有一个有10个节点的Ignite集群,我有一个分区缓存,2个备份。对于给定的缓存条目,我想知道该条目不在哪些节点中?
看起来命令行界面(ignitevisorcmd.sh
)不提供此功能。
我问过类似的问题。您可以在 link:
处查看
- 在更高层次上,Ignite 在执行放置操作时获取您提供的密钥。
- 然后形成一个更适合散列的亲和键。
- 它生成这个affinity key的哈希码,并执行模运算(取决于Ignite Servers的数量)来平均分配它。
我认为没有办法找出条目所在的 Ignite 服务器。但是,如果您的用例是在该特定网格中执行一些计算,您可以在 Ignite Compute Grid 中使用 Affinity Call 或在该键上调用 Entry 处理器。
这是获取键的主节点的方法:
Affinity affinity = ignite.affinity("my-cache");
ClusterNode primary = affinity.mapKeyToNode(key);
Affinity
API 还有很多其他方法可以手动计算亲和力(分区号、节点映射等)。
我有一个有10个节点的Ignite集群,我有一个分区缓存,2个备份。对于给定的缓存条目,我想知道该条目不在哪些节点中?
看起来命令行界面(ignitevisorcmd.sh
)不提供此功能。
我问过类似的问题。您可以在 link:
处查看- 在更高层次上,Ignite 在执行放置操作时获取您提供的密钥。
- 然后形成一个更适合散列的亲和键。
- 它生成这个affinity key的哈希码,并执行模运算(取决于Ignite Servers的数量)来平均分配它。
我认为没有办法找出条目所在的 Ignite 服务器。但是,如果您的用例是在该特定网格中执行一些计算,您可以在 Ignite Compute Grid 中使用 Affinity Call 或在该键上调用 Entry 处理器。
这是获取键的主节点的方法:
Affinity affinity = ignite.affinity("my-cache");
ClusterNode primary = affinity.mapKeyToNode(key);
Affinity
API 还有很多其他方法可以手动计算亲和力(分区号、节点映射等)。