2

Azure .NET インスタンスで使用できるローカル メモリ ストアを実装する簡単な方法を探しています。

私はAzure Co-located Cachingを見てきましたが、私のすべての要件をサポートしているようです:

  1. Web ロールと worker ロールの両方で作業する

  2. 単純な LRU を実装する

  3. キャッシュされたオブジェクトをメモリ (RAM) に保持する

  4. マシンの合計 RAM のパーセンテージとしてキャッシュ サイズを定義させてください。

  5. Web/worker ロールの同じマシンにキャッシュを保持する (共存モード)

  6. 同じマシンで実行されている複数の AppDomains から同じキャッシュにアクセスできるようにします (Web ロールはハンドラーを異なる AppDomains に分割する場合があります)

Azure のコロケート キャッシュに関して私が抱えている唯一の問題は、異なるインスタンスが通信し、それらのキャッシュを共有しようとすることです。

すべてのマシンに独自の個別のインメモリ キャッシュを持たせたいと考えています。このキャッシュをクエリするとき、他のインスタンスのキャッシュへのネットワーク リクエストを作成するために時間を無駄にしたくありません

ローカルキャッシュ構成?

ローカル キャッシュを有効にする Azure キャッシングの構成設定を見てきましたが、それでもマシンが相互に通信する可能性があるようです (つまり、キャッシュ ミス中)。この構成にはttlValueandも必要objectCountです。TTL を「永久に」、オブジェクト数を「キャッシュ全体がいっぱいになるまで」にする必要があります。maxIntどちらの場合も指定が間違っているように感じます。

単純な静的変数はどうですか?

よく考えてみると、このすべての Azure キャッシュは、私が必要としているものに対して少しやり過ぎのように思えます。基本的に、アプリケーション/ロールレベルで静的変数が必要なだけです..ただし、要件#6(異なるAppDomains)では機能しません。この場合、要件 4 の実装も少し難しくなります。

Memcached

古き良きmemcachedものはまさに私が望むことをしているようだと思います。問題は、Azure を PaaS として使用していて、自分の VM を管理したくないことです。自分の役割にインストールできないと思いmemcachedます.. [更新] memcached を自分の役割でローカルに実行できるようです。memcached 自体を使用しない、よりエレガントな「ネイティブ」ソリューションはありますか?

4

2 に答える 2

1

Web ロールと Worker ロールに memcached を確実にインストールできます。Steve Marxは、仮想マシンの機能が登場する数年前に、Azure Cloud Service で memcached を実行する方法についてブログに書いています。これは古い投稿であるため、RoleEntryPoint の OnStart メソッドの代わりに スタートアップ タスクを使用するなど、これに対処する他の方法に遭遇する可能性があります。

于 2013-08-18T16:20:13.430 に答える