0

データベースに接続してデータを取得するために、春のデータ JPA とデータソースを春の Bean として使用して CacheLoader と CacheWriter を記述しました...これらのローダーとライターをサーバーキャッシュにプラグインする必要があります...どうすれば効果的にそれを行うことができますか.

cache.xml の以下の要素を使用し、gfsh コマンド シェルからこの xml ファイルを参照する必要があると思います。

<initializer>
    <class-name>org.springframework.data.gemfire.support.SpringContextBootstrappingInitializer</class-name>
    <parameter name="contextConfigLocations">
    <string>application-context.xml</string>
    </parameter>
</initializer>

この文脈では、以下の質問があります。

1. gemfire からスプリング アプリケーション コンテキストをブートストラップする上記のアプローチは、本番環境に推奨されますか?

2.これを達成するための他の選択肢は何ですか?

3. クライアントでクライアント キャッシュを作成する回避策を実行し、これらのキャッシュ ローダーとキャッシュ ライターをプラグインしました。クライアントは Spring アプリケーションであるため、これらは実行されていますが、このアプローチは運用に推奨されますか?

4

1 に答える 1

0

1について...

このアプローチは間違いなく有効であり、主に Spring Data GemFire の XML 名前空間を使用して構成された GemFire サーバーを必要とするユーザー/管理者が Gfsh で起動できるようにします。現在、Gfsh は、GemFire サーバーをブートストラップするための Spring XML コンテキスト構成ファイルを受け入れません。したがって、Gfsh で開始する必要があるピア キャッシュとして GemFire を使用して Spring アプリケーションをデプロイするには、cache.xml の最小限のスニペットが必要であるため、このアプローチが必要です。

2について..

Gfsh を使用するものはありません。もちろん、本番環境でGfshを使用してGemFireサーバーを起動する必要がない場合は、GemFireピア・ノードまたはクライアント・キャッシュも構成するSpringアプリケーション・コンテキストをブートストラップするメイン・メソッドを持つ単純なJavaクラスで十分です...

public class GemFireServer {
  public static void main(String[] args) {
    ConfigurableApplicationContext applicationContext = new ClassPathApplicationContext("/path/to/spring/data/gemfire/application/context/config.xml");
    applicationContext.registerShutdownHook();
  }
}

ただし、GemFire 8.0 では、Spring 構成を使用して GemFire サーバーを起動およびブートストラップする機能が、暫定的に 7 月下旬にリリースされる予定であることを指摘しておきます。つまり、できるようになります...

gfsh>start server --name=MyServer --log-level=config --spring-xml-location=/path/to/spring/config.xml

3について・・・

通常、CacheLoaders と CacheWriters はサーバーで使用され、キャッシュ ミス時に値をロードして入力し、バックエンドの外部永続ストアに「ライトスルー」します。クライアントで CacheLoaders と CacheWriters を指定できますが、これは一般的ではなく、おそらくデータ ソースがクライアントに固有であるために、データ ソースが GemFire クラスターにアクセスできない場合にのみ必要です。

于 2014-07-06T17:58:09.383 に答える