2012-01-11 66 views
3

我們希望將Infinispan用作計算網格。我們在Distributed Execution Framework in Infinispan 5.0上找到了相關文檔。如何在無限計算網格中專用節點

我們想要做的就是將高速緩存的某些節點專用爲執行特定任務的專用節點,因爲只有這些節點具有必需的硬件。

我的想法是創建一個分佈式緩存將HardwareDriverKey映射到HardwareDriver,並使用 DistributedExecutorService.submit(task,hardwareDriverKey)執行任務。 爲此,我們需要找出一種方法來確保hardwareDriverKey始終位於包含實際硬件的分佈式緩存的特定節點上。

我們是否需要編寫一個自定義的ConsistentHash,可以從hardwareDriverKey中提取節點地址?你有這樣的例子嗎?還是有另一種方式?

在此先感謝, 吉爾特。

回答

2

這基本上強制對象組留在同一個節點上,但是你無法控制它是哪個節點。爲了強制定位到特定地址,您可以使用KeyAffinityService。請注意,如果拓撲更改,則可能會移動這些對象。

+0

謝謝,那就是我一直在尋找的。關於拓撲更改:何時可以移動由KeyAffinityService生成的具有密鑰的條目?只有當它自己的節點停止或啓動時? – greyfairer 2012-01-13 23:04:09

+0

不,只要有任何節點加入/離開,就有可能移動它。一般來說,當一個節點加入一個由N個成員組成的集羣時,我將把1/N個密鑰轉移到新的連接器上。葉子類似。 – 2012-01-27 16:26:57

1

分組API用於解決此問題。你可以閱讀更多關於它here

+0

您好Markus,感謝您指向Group API。但是,這只是推遲對Group對象的散列。我仍然沒有看到如何將組綁定到某個特定節點的地址? – greyfairer 2012-01-12 19:48:54