我正在評估Hazelcast作爲我正在處理的應用程序的分佈式數據網格解決方案。 Hazelcast是一個分佈式的集羣上安裝和我的應用程序使用了Spring這樣定義一個Hazelcast客戶端:使用MapLoader在客戶端內使用Hazelcast分佈式地圖
<hz:client id="hazelcastClient" group-name="dev" group-password="dev-pass">
<hz:member>localhost:5701</hz:member>
</hz:client>
在我Hazelcast節點,在hazelcast.xml
文件我設置的地圖,所有的配置需要。假設這張地圖叫做myMap
。使用Hazelcast webapp進行監控時(mancenter),我可以正確設置此地圖。
我現在已經配置了映射,以便在應用程序端注入我的bean。如果我做類似的東西
<hz:map id="myMap" instance-ref="hazelcastClient" name="myMap" />
而且我注入這個映射到我的bean包含提取邏輯,我沒有任何問題。
但是,我也寫了一個類來實現MapLoader
接口,以便處理來自緩存的缺失數據。我現在的問題是,我不知道如何將這個Maploader
綁定到我定義的緩存。如果我嘗試類似
<hz:map id="myMap" instance-ref="hazelcastClient" name="myMap">
<hz:map-store enabled="true" implementation="myMapLoader"/>
</hz:map>
我發現了一個XML解析錯誤,因爲它似乎是,當hz:map
作爲頂級元素(而不是hz:config
內部,例如),你不能指定內元素。這讓我覺得你需要定義一個hz:config
元素。但是,如果您可以爲客戶定義hz:config
元素,那麼從文檔中就不太清楚。對我來說,如果您希望您的應用程序成爲羣集的一部分,似乎您需要使用hz:config
。但我不確定,如果我的應用程序應該是羣集的一部分,這在邏輯上是正確的 - 它基本上是數據網格的客戶端。
對於如何配置我的應用程序以實現我想要的行爲,您有任何想法嗎?
謝謝!