問題タブ [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.
.net - 分散キャッシュ (SharedCache) に格納されたキーへのアクセスを同期する
私のプロジェクトでは、SharedCacheを分散キャッシュ メカニズムとして使用しています。このキャッシュされたデータにアクセスする webfarm にデプロイされたサービスの複数のインスタンスがあります。キャッシュされるデータは一時的なものであり、更新される可能性があります。2 つ以上のサービス間でデータへのアクセスを同期する方法があるかどうか知りたいです。
ここで例を挙げてシナリオを示します。実行中のサービスのインスタンスが 2 つあるとします。両方のインスタンスが共有キャッシュにアクセスしています。あるサービスが処理のためにキャッシュからデータを取得する場合、他のサービスが同じ情報を取得しないようにする必要があります。そのためには、利用できないというステータスでキャッシュを更新する必要があります。しかし、ステータスを更新しているときに、2 番目のサービスも同じデータを取得する可能性があります。
共有キャッシュのドキュメントスレッド セーフは、データがグローバルに利用可能であり、スレッド セーフではないことを示唆しています。SharedCache のソース コードを変更せずにスレッド セーフにする方法はありますか?
.net - NorthscaleClient が一貫して値を設定しない
Enyim Memcached client libaryを使用NorthscaleClient
してNorthscale Memcached Serverにオブジェクトを保存しています。以下は一貫して機能しません。ほとんどの場合、アサーションは失敗します。私は何か間違ったことをしていますか?
asp.net - サーバー上の分散アプリケーションのキャッシュ
2 つのサーバーに分散される Web アプリケーションがあり、データベースは 2 つのサーバー以外のサーバー上にあります。そのため、各サーバーのアプリケーションは別のサーバーに存在するデータベースにアクセスします。アプリケーションでキャッシュを使用していますが、データが変更されるとキャッシュがクリアされ、各サーバーが他のサーバーのキャッシュの変更をどのように感じるかという問題がありますか?
以前に SQLCache の依存関係を試したことがありますが、Memcached、Velocity、および Enterprise キャッシュについて聞いたことがありますが、この場合、どちらがより効率的で最適でしょうか? 各アプリケーションで webservice メソッドを作成する別のソリューションがあり、1 つのアプリケーションでキャッシュがクリアされると、他のアプリケーションで webservice メソッドを要求してキャッシュをクリアします。
パフォーマンスとセキュリティの点で、より効率的で最適な手法はどれですか? また、SQLCache の依存関係は SQL データベースのみに関連していますか、それとも Oracle などの他のデータベースに適用できますか?
注:ロードバランサーを使用して、アプリケーションに送信されるリクエストを2つのサーバーに分散しています
前もって感謝します
asp.net - ASP.NET ですべてのユーザーをキャッシュする
高いユーザー負荷を処理するためにスケーラブルである必要がある ASP.NET/C# の Web アプリに取り組んでいます (おそらく Web ファームで実行されます)。約100万人以上の多数のユーザーに対応するため、オンラインユーザーの数は約30K〜50Kになります. 私はキャッシング(プロバイダーベース)を使用する予定で、疑問に思っていました:
パフォーマンスのためにすべてのユーザーをキャッシュすることは良い考えですか? 設定などの他のすべての一般的なデータをキャッシュする予定ですが、すべてのユーザーをメモリにキャッシュするとどのくらい効率的でしょうか? ユーザーが自分のプロファイルを変更した場合、その特定のユーザーのみをキャッシュにリロードします (すべてのユーザーのコレクションがあります)。このアプローチに関する提案はありますか?
このユーザーキャッシュを使用する場合、ロックについて心配する必要はありますか? ユーザー自身がプロファイルを編集するのは 1 回だけであり、それは 1 つのアトミック操作になりますが、異なるスレッドで複数の読み取り操作が行われます。では、キャッシュからユーザーをフェッチするとき、または特定のユーザーを更新するときに、ロックを使用する必要がありますか?
ありがとう
かのように
java - 分散キャッシュ技術
次の要件を満たすオープン ソース メッセージングおよび/または分散キャッシュ テクノロジに興味があります。
- Java Web アプリケーションの負荷分散された複数のインスタンス (おそらく Amazon EC2 上)
- スケーリングのために、時間の経過とともにインスタンスの数が変化する可能性があります。
- リクエストに ID FOOが含まれている場合、イベントは一定期間メモリにキャッシュされます。
- イベントがキャッシュされる期間はリクエスト ペイロードで指定され、リクエストによって異なります。
- 所要時間は比較的短い (数分程度)。
- 永続性は必要ありません。何か劇的なことが起こり、サーバーを再起動する必要があるまれなケースでは、過去のイベントを忘れても問題ありません。
- リクエストに関する情報をすべてのサーバー インスタンスに伝達する必要がある
- 情報の伝播が、サーバーのパフォーマンス、特に応答の待ち時間に大きな影響を与えてはなりません。リクエスト処理とは非同期にする必要があります。ただし、かなり高速で、多数のリクエストに対応できる必要があります。
- 異なるサーバー インスタンスが同期していなくても問題ありません。つまり、サーバー インスタンス 2 は、その情報がサーバー インスタンス 1 に伝達されるまで、サーバー インスタンス 1でFOOが発生したことを短時間 (数秒程度) 認識しないことは許容されます。
どんなアイデアでも大歓迎です。要件を満たすために特定の構成/カスタマイズが必要なソリューションがある場合は、何をする必要があるかをお知らせください。
編集現在の回答が関連していないことを意味するつもりはありませんが、質問では明示的ではありませんでした。太陽の下にあるすべての MQ および JSR-107 ライブラリを指すだけにしないでください。あなたが信じる理由があるものだけが私の要求を満たします.
java - DDS DataReader キャッシュが壊れてアクセスできなくなる
i386 で dds ライブラリを操作して、サンプルを繰り返しプルしようとしています。私は明示的にサンプルをread
「take
ing」しているのではなく、期限切れになったり削除されたりすることはありません。
- (1) と (2) の 2 つの黒板アプリケーションを起動します。
- 両方のアプリケーションで読み取りを実行します。これにより、「キャッシュが空です」が返されます。
- (1) から書き込み、センサー ID: 1、イベント ID: 1、値: 1。
- (1)から読み込み、値を確認
- (2)から読み込み、値を確認
- (2) から書き込み、センサー ID: 1、イベント ID: 1、値: 2。
- (2) から読み取り、「キャッシュが空です」
- (1) から読み取り、「キャッシュが空です」
「壊した」みたい!サンプルの寿命は無限であるべきだと思います(または、理解するようになりました...しかし確認できません!)-しかし、明示的に設定することはできません。topicQos.lifespan.duration
はタイプですが、すでにファイナライズDuration_t
されているため、「新規」に設定できませんか?Duration_t(Duration_t.DURATION_INFINITY_SEC,Duration_t.DURATION_INFINITY_NSEC)
language-agnostic - さまざまな Web サイト キャッシュ アーキテクチャのトレードオフ
さまざまな Web サイト キャッシング アーキテクチャのトレードオフを調査する優れた記事やブログ投稿はありますか?
たとえば、Web サイト ホストごとに個別のキャッシュを使用することと、コンシステント ハッシュを使用して各 Web サイト ホスト間でキャッシュを共有することと、専用のキャッシュ ホストを使用することの長所と短所は何ですか? 非常に一貫性が必要なデータに 1 つのパターンを使用し、大量であるが必ずしも一貫性が必要ではないデータに別のパターンを使用するのはどうでしょうか。
業界は、ほとんどのユースケースで共通のパターンに落ち着いていますか?
caching - 分散キャッシング フレームワークとしての memcache、redis、および ehcache の比較
決定しなければならないことの 1 つは、システムで使用するキャッシング フレームワークです。選択肢が非常に多いため、現在、redis、ehcache、および memcached を調査しています。
これら 3 つの特定のフレームワークのパフォーマンス ベンチマークを指摘できる人はいますか? また、それらの機能の概要-私は特に欠点に興味があります。どちらか一方を使用する状況。
.net - 外部アプリによる更新後にエンタープライズ ライブラリ キャッシュを更新する
何ヶ月にもわたって探し回った後、私は最終的にこれを投稿することにしました.
エンタープライズ ライブラリを使用して項目をキャッシュする ASP.NET MVC アプリがあります。また、キャッシュされたアイテムを頻繁に更新する Windows サービスも使用しています。問題は、Windows サービスがキャッシュされたアイテムを更新するときに、IIS をリセットするまで mvc Web サイトが更新されたキャッシュされたアイテムを認識しないことです。IIS サービスを再起動するコードをサービスに入れることを考えましたが、もっと良い方法が必要だと思います。外部アプリからアイテムを削除することについて話している別の投稿が 1 つあるようですが、十分ではありません。
これは、キャッシュ マネージャーの各インスタンスにローカルなメモリ内バージョンと関係があると考えられますが、すべてをまとめる方法が見つかりません。
java - Ehcache 複数の JVM - オープンソース?
ねえ、私は現在、Tomcat でスプリングを使用して ehcache を実行しています。共有/分散キャッシュに移動したい ehcache の独自のインスタンスを実行している Web サーバーがいくつかあります。商用ライセンスのパフォーマンスに満足し、スケールアウト中に正式なサポートが必要になるまで、まだ商用ライセンスを使用するつもりはありません.
私が混乱したのは、ehcache/teracotta サイトです。すべてのドキュメントは、テラコッタ サーバーで ehcache キャッシュを実行することを目的としているようですが、ehcache 構成ファイルを更新することで Web サーバーを接続することができます。
今はクラスタリングは本当に必要ありません (それがエンタープライズ ライセンスの一部であるかどうかは理解できます) が、オープンソースの分散キャッシュ インスタンスをセットアップできると思っていましたか? ハウツーへのリンクはありますか?それとも、埋め込みインスタンスから共有インスタンスに移動する方法に関する一般的な指示ですか?