2016-12-27 12 views
0

ノードの開始後にヘリキャスト(バージョン3.4)ノードでコードフラグメントを実行する方法はありますか?ノード起動時にHazelcastマップを作成して入力する

ハゼルキャストノードの1つが(クライアント側で.getMapが実行されるのを待たずに)マップを作成し、データベースからのデータをポップアップすると、クライアントがデータを要求すると、すでにマップが設定されています。

答えて

0

これはhazelcast.xmlでカスタムサービスを定義することによって解決することができます。サービスコンストラクタはノードの起動時に呼び出され、そこからヘリキャストマップを要求して設定することができます。 しかし、getMapの呼び出しは新しいスレッドで行う必要があります。

1

はい。 IMapMapLoaderを実装してから、MapLoader.loadAllKeys()メソッドを使用して、ホットキーでマップを初期化する必要があります。

マップを使用/最初にタッチしたときは、事前移入 メモリ内のマップにMapLoader.loadAllKeys APIを使用することができます。

これは、ドキュメントが言うことです。 MapLoader.loadAllKeysがNULLを返した場合、何もロードされません。 MapLoader.loadAllKeys実装では、 キーのすべてまたは一部を返すことができます。たとえば、ホットキーのみを選択して返すことができます。 MapLoader.loadAllKeysは、マップ を事前入力する最も早い方法です。各ノードにエントリの所有部分をロードさせることで、Hazelcastはロードプロセスを最適化します。

3.5 Map Persistence Documentation Link

+0

getMap(「マップに初めてアクセスしたとき」)が呼び出されたときにloadAllKeysが呼び出されるという問題があります。 ノードが起動した直後に、営業時間外に起こることを確実にするために、その権利を呼び出す方法が必要です。 – ataurenis

+0

ノードの起動スクリプトでノードを起動する際に、その手順を含めることをお勧めします。 –

関連する問題