問題タブ [jcache]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
1089 参照

java - ehcache.xml の構成は、作成された JCache インスタンスでは使用されません。

JCache (JSR 107) の EHCache 実装を使用しようとしています。以下の構成ファイルを提供しますsrc\main\resources\ehcache.xml

キャッシュを作成する方法は次のとおりです。

しかし、作成されたキャッシュは、提供された構成 (つまり、 の下) を使用していないようehcache.xmlです。ここでのデバッグは、ehcache インスタンスの属性です。

0 投票する
2 に答える
2512 参照

hazelcast - JCache で Cache のコンテンツを表示する方法

キーを使用してキャッシュを読み取るオプションがあります。このような :

後者では、期限切れのものをキャッシュにロードしてから表示します。

ただし、要件は、現在キャッシュにあるすべてのコンテンツを表示することです。

0 投票する
2 に答える
2331 参照

java - すべてのキャッシュ名を取得する

Hazel キャスト 3.3.3 で J キャッシュを使用するクラスター内のすべてのキャッシュを読み取る REST アプリケーションを開発しています。

このアプリケーションで次の行を呼び出すと、別のヘーゼル キャスト ノードが作成されます。

ノードは、作成済みのノードでクラスター化されます。しかし、次のコマンドでクラスターのすべてのキャッシュ名を取得しようとすると、空の iterable が返されます。

以下を含む Jcache の Java ドキュメントを調べました。

CacheManager によって管理されるすべてのキャッシュを提供するとは限りません。例: getCache(java.lang.String) または getCache(java.lang.String,java.lang.Class,java.lang.Class) への呼び出しによってアクセスできる内部定義またはプラットフォーム固有のキャッシュが存在しない場合があります。反復で。

しかし、アクセスしようとしているキャッシュは、内部で定義されていないか、プラットフォーム固有ではありません。それらは他のノードによって作成されます。

クラスターに存在するすべての名前を取得する方法が必要です。これに方法はありますか?

注意: アプリケーションでは hazelcast.xml は使用されません。すべてがデフォルトの xml によって初期化されます。

アップデート:

名前がわかればキャッシュにアクセスできます。そして、名前を直接指定して初めてア​​クセスした後、そのキャッシュがcacheManager.getCacheNames().iterator()

0 投票する
2 に答える
905 参照

hazelcast - Hazelcast Community Edition クラスターへの不要なアクセスを防止する

2 台のマシン クラスターで Hazelcast 3.4 を実行しています。コンテンツを同期するために、ネットワーク経由で接続しています。今、私は不要な書き込みを防ぐ手段を検索し、可能であればそれらのいずれかへの読み取りアクセスを行います。セキュリティは Enterprise Edition でのみ利用でき、私が知る限り、グループは他の Hazelcast サーバーがクラスターに参加するのを防ぐだけです。

2 台のサーバーをネットワーク経由で同期させ、他のサーバーがポート 5701 に接続して読み書きできないようにすることはできますか?

この情報が問題の絞り込みに役立つ場合: 私は Hazelcast の JCache 機能を使用しているだけなので、その部分だけを保護する必要があります。ServerA<->ServerB を許可し、viciousUser<->ServerN を防止するファイアウォール構成をセットアップすることはできません。サーバー上でファイアウォールを構成することは許可されていないためです (理由は聞かないでください ;-))

0 投票する
1 に答える
121 参照

wso2 - Oracle Coherenceを使用したWSO2 Identity Server 5.0.0クラスタリング

皆さん、こんにちは (おそらく Asela? :)、

WSO2 ELBを使用してクラスタ化されたWSO2 Identity Server 5.0.0を使用してOracle Coherenceをキャッシュ・プロバイダとして実装する方法を教えてもらえますか?

そのトピックに関するいくつかの非常に役立つリンクを見つけました。そこから、これを良い出発点と考えています: Clustering Identity Server

しかし、Hazelcast キャッシュ プロバイダーを他のプロバイダーに変更するための解決策を見つける方法が見つかりません。

また、WSO2 は JDK の javax.caching 実装を使用しておらず (1.7 以降で導入されたため)、JSR-107 に基づいた独自のものを使用していることにも気付きました (JSR は Java JDK JCache の起源だと思います)。

この記事では、ユーザー JSR 107 JCache を何らかの方法で実装する方法があることを示していますが、Identity Server: WSO2 Multi-tenant Cache: JSR-107 (JCache)全体に対して構成されているようには見えません。

WSO2 Identity Server 5.0.0 内でグローバルに使用されるように、何を変更または追加するか (たとえば、カーボン コアに)、およびそれらの変更をどこでセットアップ/構成するかを導く答えを期待しています。

これが関連する質問であることを願っています。この Carbon ベースのプラットフォームは非常に豊富で構成可能であるため、時間をかけてこれが可能になることを願っています。

前もって感謝します、

ヨーゼフ

0 投票する
1 に答える
2170 参照

java - アプリケーションでの Hazelcast キャッシュの実装

以下は、アプリケーションの観点からの私のシナリオです。

2 つのアプリケーション (.war) ファイルがアプリケーション サーバー (主に Tomcat 8) の同じインスタンスで実行されます。本番環境では、App1 を 100 台のサーバーにデプロイし、App2 は 100 台のうち 50 台のサーバーにのみデプロイできます (App2 は必要ありません)。たくさん配布されます)

現在、この 2 つのアプリケーション (.war) は、共通のカスタム jar (いくつかのユーティリティ クラス) に依存しています。

アプリで Jcache API と hazelcast の実装を使用する予定です。pom.xml に次の依存関係を追加しました

計画では、App1 と App2 で共有されるこの共通のカスタム jar にユーティリティ CacheManager を記述します。

インメモリ クラスターを使用しているため、 hazelcast サーバー プロバイダーのみを使用する予定です。つまり、キャッシュはアプリケーション メモリ内に配置されます。

以下は私のコードのスニペットです。

私のhazelast.xml

今、私はこのアプローチについていくつか質問があります。

  1. これはインメモリ キャッシングを実装する良い方法ですか (現在、クラスター キャッシングを探していません)、このコードは共通のカスタム jar または別の場所にある必要がありますか?

  2. ロードする予定の DB からのマスター データがいくつかあるので (両方のアプリケーションでこのデータが必要です)、このデータをメモリにロードする方法と場所がわかりません。注: 遅延読み込みはしたくありません。このマスター データを最初にロードします。

  3. このキャッシュは両方のアプリケーションで共有されるため、メモリ リークの問題を回避するには、キャッシュ シャットダウン コードをどこに追加する必要がありますか。

アップデート

また、このアプローチを実装することで、アプリケーションごとに 2 つのキャッシュのコピーが作成されますか、それとも 1 つのコピーが両方で共有されますか?

私はすでにこのアプローチをアプリケーションに実装しており、Hazelcast 管理コンソールから、キャッシュが 1 つだけ作成されていることがわかりますが、このキャッシュで GET が 2 回実行されていることがわかります。

0 投票する
1 に答える
2038 参照

java - メソッドに引数がない場合は @CacheResult を使用します

システムの (めったに変更されない) 構成を返すメソッドがあり、それをキャッシュしたいと考えています。構成はさまざまなデータから構築されているため、個々の部分をキャッシュするのではなく、SystemConfigurationオブジェクト自体をキャッシュします。

このメソッドには引数がありません。Ehcache に固定キーの「構成」を使用するように指示するにはどうすればよいですか (構成のインスタンスは 1 つしかありません)。を作成する必要がありますか、CacheKeyGeneratorそれとももっと簡単な方法がありますか?