問題タブ [distributed-caching]
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.
ehcache - EhCacheでjavax.cache.CacheManagerを使用する
キャッシュソリューションプロバイダーとしてEhCacheを使用してjavax.cache.CacheManagerJSR107APIを使用しようとしています。しかし、私はそのようなリソースを見つけることができません。
http://ehcache.org/documentation/integrations/jsr107のリンクによると、ehcachejsr107はまだドラフト段階にあると書かれています。それでも問題がないかどうか確認していただけますか?
JSR107javax.cache。*クラスを使用してnetsfcacheManagerを使用するためのサンプルコードはありますか?
ありがとう、ハリッシュ
distributed-caching - 軽量な分散DB/キャッシュを探しています
単純なプレーンテキストを保存しますが、(D)DB/キャッシュからこれらの機能を探しています。
- すべてのノード間でのレプリケーション
- ライブクラスターへのノードの追加
- それは無料です
- ディスクへの永続性(別のDBへの永続性ではない)
- 比較的少ないリソースを使用します
Apache ZooKeeperはDB要件に失敗しますが、私の意図のためにそれを悪用したいと思います...
ApacheCassandraは最後の要件を満たしていません。
Redisは最初の要件で失敗します(手を汚す準備ができていない限り)。
ヘーゼルキャストとヴォルデモートは永続性で失敗します、AFAIK。
これらは私の一番の選択です、そして今私は私が正しい軌道に乗っているかどうか疑問に思っています、またはこれに対する別の解決策はありますか?
ありがとう!
caching - Azureローカルキャッシュと分散キャッシュ
過去数日間、私はAzureCachingを使用してきました。ローカルキャッシュ機能を使用して、分散キャッシュへのラウンドトリップを防ぐことをお勧めします。
ドキュメントで読むことができるように; dataCache.Get(...)を呼び出すと、アプリケーションは最初にローカルキャッシュ内のバージョンが使用可能かどうかを確認し、使用できない場合は、オブジェクトが分散キャッシュから取得されます。問題は、ローカルバージョンがオブジェクトの分散バージョンよりも古い可能性があることです。この問題を解決するために、メソッド'dataCache.GetIfNewer(...)'を使用できます。このメソッドを使用して、ローカルオブジェクトのバージョンが分散バージョンと異なるかどうかを確認し、異なる場合は新しいオブジェクトを返します。
これまでのところ、とても良いです...今私の質問。Azureキャッシングメカニズムをテストするために、2つの別個のアプリケーション(アプリAとアプリB)を作成しました。両方のアプリケーションは2つの異なる(物理的な)場所で実行されるため、どちらも独自のローカルキャッシュを持ちますが、どちらも同じ分散キャッシュを使用します。
ローカルキャッシュを無効にする過程で何かが変わったというのは本当ですか?次のシナリオをテストしたところ、ローカルキャッシュが自動的に更新されることがわかりました。
- アプリAは、キー「CacheTest」を使用して分散キャッシュに値「123」を格納します
- アプリBはdataCache.Get(...)メソッドを使用して、ローカルキャッシュに見つからないキー「CacheTest」のオブジェクトを取得するため、分散キャッシュから取得され、値「123」のオブジェクトが返されます。
- アプリAは、キー「CacheTest」を持つオブジェクトを値「456」に変更します
- アプリBは、datacache.Get(...)メソッドを使用して(再び)オブジェクトを取得します。オブジェクトはローカルキャッシュにあるはずなので、値「123」を期待しますが、新しい値「456」を返します。
それはどれほど奇妙ですか?最近、Azure Cachingで何か変更がありますか?はい...ローカルキャッシュをオンにしたことは確かです。はい、ローカルキャッシュのタイムアウトを3600秒(1時間)に設定しました。
Azureキャッシングが変更されたことを誰かが確認できますか?
ニックのために編集:それで、あなたが言っているのは、私がオランダのマイクロソフトのサイトで見つけた次のコード行はナンセンスだということですか?ローカルキャッシュが自動的に更新される場合、「GetIfNewer」メソッドを呼び出す必要はありません:http://www.dotnetmag.nl/Artikel/1478/Windows-Azure-AppFabric-Caching
algorithm - Consistent Hashing の欠点はありますか?
確かに、コンシステント ハッシュは、分散キャッシュ アプリケーションで広く使用されているテクノロジです。これは、ノード数が動的に変化する場合に優れたソリューションを提供します。また、仮想ノードを組み合わせると、負荷分散の問題も解決されます。
この手法の欠点や制限はありますか?
ありがとう!
jakarta-ee - Ehcache RMIレプリケーションは、Tomcatを使用するLinuxでは機能しませんが、Windowsでは正常に機能しますか?
Linux上の2つのシステムにSampleWebAppなどのWebアプリケーションであるサーバーの2つのインスタンスをインストールしました。ローカルデータをキャッシュするようにehcacheを構成し、Server1からServer2に行われた変更を複製するためのデフォルトのRMIレプリケーションも構成しました。レプリケーションはWindows環境では正常に機能しますが、Linux環境では機能しません。エラーが出力されなくても、サイレントに失敗します。
ehcache.xmlファイルで行われた構成は以下のとおりです-
レプリケーションをブロックする可能性のあるファイアウォールがインストールされていないため、ファイアウォールが失敗する理由にはなりません。ポートが開いているかどうかも確認しました。割り当てられたポート50000が開かれ、Ehcacheがこのポートをリッスンします。問題は、キャッシュに更新がある場合、この変更が複製されないことです。
これに関する提案や説明をいただければ幸いです。
ありがとう、ワンダー!
c# - キャッシュ クラスタの変更をローカル キャッシュに通知する
C# アプリケーションで appfabric キャッシュを使用しています。ローカルキャッシュを有効にしました。
キャッシュ クラスターからアイテムを追加、削除、更新、または削除したときに、C# コードを介してそのようなことが発生したという通知を送信したいと考えています。これは可能ですか?もしそうなら、どのように達成されますか?
アプリケーションの web.config で設定して、キャッシュ クラスターの更新をポーリングするように設定することを検討していましたが、パフォーマンスの問題が発生する可能性があるので、コードに通知のトリガーを含めたいと考えています。
c# - サーバー クラスターでの appfabric のパフォーマンス
現在、appfabric が分散キャッシュ メカニズムとして使用されている分散 Web サーバー環境で appfabric を使用しています。
.net Web アプリケーションを使用して 4 つの Web サーバーで実行するように appfabric をセットアップしました。appfabric はそのキャッシュ メカニズムです。最近、これらのサーバーで稼働しましたが、問題が発生しました。各ボックスのサイト iis ワーカー プロセスでは、メモリがリサイクルされるまで、短期間で 200K から 1000K 以上に絶えず増加することがわかりました。クラスターに 1 時間キャッシュされたアイテムに基づいて、ローカル キャッシュを有効にしたタイムアウトがあります。高可用性が有効になり、3 つのリード ホストを使用して xml クラスター構成がセットアップされます。
この問題を解決するには、短期的にはキャッシュ時間を 5 分に短縮し、ローカル キャッシュを無効にする必要がありました。その結果、ワーカー プロセスのメモリは以前と同じレベルには達しませんでしたが、時間の経過とともにわずかに増加しました。平均して約 10,000 個のアイテムがキャッシュされており、オブジェクトのサイズは文字列から dto オブジェクトまでさまざまです。
appfabric について、サポートが必要な質問がいくつかあります。
ローカル キャッシュの非シリアル化オブジェクトはワーカー プロセス メモリに格納されますか? または、ローカルキャッシュはどのメモリに保存されていますか?
どこかで読んだのですが、理解できません。アイテムがキャッシュから削除されると、キーが一定期間キャッシュに残るということです。あれは正しいですか?
クラスタ内のサーバーの 1 つが仮想サーバーであり、これでも同じ動作が見られました。仮想サーバー appfabric のセットアップに関連して確認すべきことはありますか? 現在、他のキャッシュ ホストと同じように設定されていますが、リード ホストではありませんか?
問題がキャッシュ内のオブジェクトのサイズに関連している可能性があることを懸念していましたが、これは可能でしょうか? キャッシュ内のアイテムのサイズですか、それともアイテムの数が appfabric キャッシュのパフォーマンスを妨げていますか?
これから最適なパフォーマンスを得るために、アプリケーションとセットアップの両方を微調整しながら、これを支援するための助けをいただければ幸いです。
c# - AppFabric キャッシュ サーバーのレプリケーション
いくつかグーグルで調べた後、私が尋ねようとしている質問についてあまり見つけられませんでした。
AppFabric で異なるサーバー間でキャッシュをレプリケートすることは可能ですか? (共有キャッシュのように、それができると言っています..)。
私は、将来的に分散キャッシュの可能性がある新しいアプリを特定しようとしていますが、明らかに、できることとできないことを知ることはそれを助けるでしょう.
現時点では、キャッシュ クラスターを使用することはできません。そのため、すべてのサーバーが互いのキャッシュを認識するだけで、(冗長性のためにも) 大きなメリットが得られます。
また、サイト ノートでは、web.config ベースで各サーバーを個別に指定する必要がありますか? または単に「クラスター」を参照します。
レプリケーション ポートがあることは知っていますが、インターネットに関することは何もありません。
どんな助けでも大歓迎です!
spring - Spring-Integration フレームワークと apache Camel を使用したエンティティのキャッシュ
統合の問題に最適なフレームワークを選択するために、統合フレームワークを参照しています。私が知りたいことの 1 つは、キャッシングと分散キャッシングです。たとえば、通信に Web サービスを使用する場合、サポートされているかどうかはわかりません。もしそうなら、どうやって?
in Pro Spring Integration CHAPTER 16 ■ SCALING YOUR SPRING INTEGRATION APPLICATION page 544 では、キャッシング戦略について話していますが、Spring-integration を使用してそれらを実装する方法については言及していません。また、彼らはどこかでメッセージキャッシングについて話しているのですが、複数のマシン間のエンティティのキャッシングソリューションはありますか?