我们希望将Infinispan用作计算网格。我们在Distributed Execution Framework in Infinispan 5.0上找到了文档。
我们想要做的是将缓存的一些节点专用于执行特定任务的专用节点,因为只有这些节点具有必要的硬件。
我的想法是创建一个分布式缓存,将HardwareDriverKey映射到HardwareDriver,然后使用执行任务 DistributedExecutorService.submit(task,hardwareDriverKey)。 为此,我们需要找到一种方法来确保hardwareDriverKey始终位于包含实际硬件的分布式缓存的特定节点上。
我们是否需要编写一个可以从hardwareDriverKey中提取节点地址的自定义ConsistentHash?你有这方面的例子吗?或者还有另一种方式吗?
提前致谢, 吉尔特。
答案 0 :(得分:2)
这基本上会强制对象组停留在同一节点上,但是您无法控制它是哪个节点。为了强制定位到特定地址,您可以使用KeyAffinityService。请注意,如果拓扑发生变化,可能会移动对象。
答案 1 :(得分:1)
分组API可以解决这个问题。您可以阅读更多相关信息here。