我一直在尝试实现一个始终在Infinispan 8.1中的特定节点中存储特定值的项目。如果该节点已关闭,则应将该缓存中的值移动到另一个节点。我听说过支持我的要求的分组api,但是,我只想确认如果该节点关闭,是否所有值都将被移动到辅助所有者节点。
答案 0 :(得分:3)
分组API并不保证条目存储在特定节点上。它保证同一组中的条目存储在同一节点上[1]。
KeyAffinity API [2]可以帮助确保条目存储在特定节点上。但是,它只会在稳定拓扑下存储在该特定节点上。如果拓扑发生变化,则无法保证它仍然存储在该节点上,即使它仍然存在。
在任何一种情况下,如果您使用的分布式缓存至少具有numOwners> = 2,那么只要您没有并发故障,就会保留数据(并根据需要在节点之间移动)> = numOwners。
[1] http://infinispan.org/docs/dev/user_guide/user_guide.html#grouping
[2] http://infinispan.org/docs/dev/user_guide/user_guide.html#KeyAffinityService