我一直在尝试实现一个项目,该项目将始终在Infinispan 8.1中的特定节点中存储特定值。如果该节点发生故障,则应将该缓存中的值移至另一个节点。我听说过支持我的要求的Grouping api,但是,我只想确认如果该节点关闭,则是否所有值都将移至辅助所有者节点。

最佳答案

分组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

关于java - Infinispan中的分组API,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47136329/

10-10 15:13