第2章 キャッシュマネージャー
Data Grid への主なエントリーポイントは CacheManager
インターフェイスであり、以下を行うことができます。
- キャッシュを設定および取得します。
- クラスター化された Data Grid ノードを管理および監視します。
- クラスター全体でコードを実行します。
Data Grid をアプリケーションに埋め込む場合は、EmbeddedCacheManager
を使用します。Data Grid をリモートサーバーとして実行する場合は、RemoteCacheManager
を使用します。
キャッシュマネージャーはヘビーウェイトオブジェクトであるため、ほとんどの場合、JVM ごとに 1 つの CacheManager
インスタンスのみをインスタンス化する必要があります。
EmbeddedCacheManager manager = new DefaultCacheManager(); 1
- 1
- キャッシュのないローカルのクラスター化されていないキャッシュマネージャーを起動します。
キャッシュマネージャーにはライフサイクルがあり、デフォルトのコンストラクターは start()
メソッドも呼び出します。コンストラクターのオーバーロードされたバージョンが利用可能ですが、それらは CacheManager
を開始しません。ただし、キャッシュを作成する前に必ず CacheManager
を起動する必要があります。
同様に、実行中の CacheManager
が不要になった際に stop()
を呼び出して、リソースを解放する必要があります。これにより、キャッシュマネージャーは制御するキャッシュを安全に停止することもできます。
2.1. キャッシュの取得
CacheManager
を設定した後、キャッシュを取得および制御できます。
以下のように、キャッシュを取得するために getCache(String)
メソッドを呼び出します。
Cache<String, String> myCache = manager.getCache("myCache");
上記の操作は、myCache
という名前のキャッシュがまだ存在しない場合は作成し、それを返します。
getCache()
メソッドを使用すると、メソッドを呼び出すノードにのみキャッシュが作成されます。つまり、クラスター全体の各ノードで呼び出す必要のあるローカル操作を実行します。通常、複数のノードにまたがってデプロイされたアプリケーションは、初期化中にキャッシュを取得して、キャッシュが対称であり、各ノードに存在することを確認します。
createCache()
メソッドを呼び出して、以下のようにクラスター全体でキャッシュを動的に作成します。
Cache<String, String> myCache = manager.administration().createCache("myCache", "myTemplate");
上記の操作では、後でクラスターに参加するすべてのノードにキャッシュが自動的に作成されます。
createCache()
メソッドを使用して作成するキャッシュは、デフォルトでは一時的です。クラスター全体がシャットダウンした場合、再起動時にキャッシュが自動的に再作成されることはありません。
PERMANENT フラグを使用して、以下のようにキャッシュが再起動後も存続できるようにします。
Cache<String, String> myCache = manager.administration().withFlags(AdminFlag.PERMANENT).createCache("myCache", "myTemplate");
PERMANENT フラグを有効にするには、グローバルの状態を有効にし、設定ストレージプロバイダーを設定する必要があります。
設定ストレージプロバイダーの詳細は、GlobalStateConfigurationBuilder#configurationStorage() を参照してください。