【问题标题】:How to dedicate nodes in an infinispan compute grid如何在 infinispan 计算网格中指定节点
【发布时间】:2012-02-08 04:41:50
【问题描述】:

我们希望将 Infinispan 用作计算网格。我们在Distributed Execution Framework in Infinispan 5.0 上找到了文档。

我们要做的是将缓存中的一些节点专用于执行特定任务的专用节点,因为只有这些节点才有必要的硬件。

我的想法是创建一个分布式缓存映射 HardwareDriverKey 到 HardwareDriver,并使用执行任务 DistributedExecutorService.submit(task, hardwareDriverKey)。 为此,我们需要找到一种方法来确保 hardwareDriverKey 始终位于包含实际硬件的分布式缓存的特定节点上。

我们是否需要编写一个可以从hardwareDriverKey中提取节点地址的自定义ConsistentHash?你有这方面的例子吗?还是有别的办法?

提前致谢, 吉尔特。

【问题讨论】:

    标签: java caching infinispan


    【解决方案1】:

    这基本上迫使对象组保持在同一个节点上,但您无法控制它是哪个节点。为了强制定位到特定地址,您可以使用KeyAffinityService。请注意,如果拓扑发生变化,对象可能会四处移动。

    【讨论】:

    • 谢谢,这正是我想要的。关于拓扑变化:KeyAffinityService 生成的 key 条目何时可以移动?只有当它自己的节点停止或启动时?
    • 不,它可以在任何节点加入/离开时被移动。一般来说,当一个节点加入一个有 N 个成员的集群时,我会将 1/N 个键转移给新的加入者。叶子也类似。
    【解决方案2】:

    分组 API 可以解决这个问题。你可以阅读更多关于它的信息here

    【讨论】:

    • 嗨,Markus,感谢您指向 Group API。但这只是将散列推迟到 Group 对象。我仍然看不到如何将组绑定到一个特定节点的地址?
    猜你喜欢
    • 2015-09-15
    • 2021-11-03
    • 2011-08-31
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多