現在取り組んでいるアプリケーションの分散データ グリッド ソリューションとして Hazelcast を評価しています。Hazelcast は分散クラスター上にセットアップされ、私のアプリケーションは Spring を使用して 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>
hz:map
が最上位要素として使用されている場合 (hz:config
たとえば、 内ではなく)、内部要素を指定できないように見えるため、XML 解析エラーが発生します。hz:config
これは、要素を定義する必要があると私に思わせます。hz:config
ただし、クライアントの要素を定義できるかどうかは、ドキュメントからはあまり明確ではありません。hz:config
アプリケーションをクラスターの一部にしたい場合は、使用する必要があるようです。ただし、アプリをクラスターの一部にすることが論理的に正しいかどうかはわかりません。基本的には、データ グリッドのクライアントです。
希望する動作を実現するためにアプリを構成する方法について何か考えはありますか?
ありがとう!