4

私はAppFabricを使い始めたばかりです...

私のアプリケーションは医療分野です。システムには約 15000 人のユーザーがいて、患者情報に一気にアクセスします (たとえば、看護師/医師のチームが入院中に患者にアクセスすることを考えてみてください)。

私がやりたいのは、特定のアイテム (患者の人口統計情報など) をメモリにキャッシュし、その他のアイテム (ラボ、医薬品、画像診断、レポートなど) をキャッシュ ホスト サーバーにキャッシュすることです。基礎となるデータは、さまざまなサードパーティ システムから取得されますが、データを返すのが非常に遅いものもあります。

特定のアイテムがローカル キャッシュに移動し、他のアイテムがサーバーに移動することを示すことが可能かどうかは誰にもわかりませんか? データが多すぎてすべてがメモリに収まりません。MSDN のドキュメントを見ると、ここにサンプルの構成ファイルがあります。

   <dataCacheClient requestTimeout="15000" channelOpenTimeout="3000" maxConnectionsToServer="1">
      <localCache isEnabled="true" sync="TimeoutBased" ttlValue="300" objectCount="10000"/>
      <clientNotification pollInterval="300" maxQueueLength="10000"/>
      <hosts>
         <host name="CacheServer1" cachePort="22233"/>
         <host name="CacheServer2" cachePort="22233"/>
      </hosts>
      <securityProperties mode="Transport" protectionLevel="EncryptAndSign" />
      <transportProperties connectionBufferSize="131072" maxBufferPoolSize="268435456" 
                           maxBufferSize="8388608" maxOutputDelay="2" channelInitializationTimeout="60000" 
                           receiveTimeout="600000"/>
   </dataCacheClient>

ローカル キャッシュを有効にすると、キャッシュ クライアント全体が有効になるように見えますか?

私が説明するシナリオをサポートするには、2 つのキャッシュ クライアントを作成する必要があり、コードはどのキャッシュ クライアントにデータを配置するかを認識/認識する必要があるということですか? または、データをキャッシュに保存するときに使用できる API/フラグ/パラメーターはありますか? それとも、リージョン/タグを使用して処理されますか?

ありがとう!

4

1 に答える 1

2

AppFabric 1.1を使用していると仮定すると、異なる構成で複数のdataCacheClientノードを構成できます。したがって、既存の例を使用すると、次のようになります。

<!-- local caching client -->
<dataCacheClient name="LocalCaching" requestTimeout="15000" channelOpenTimeout="3000" maxConnectionsToServer="1">
  <localCache isEnabled="true" sync="TimeoutBased" ttlValue="300" objectCount="10000"/>
  <clientNotification pollInterval="300" maxQueueLength="10000"/>
  <hosts>
     <host name="CacheServer1" cachePort="22233"/>
     <host name="CacheServer2" cachePort="22233"/>
  </hosts>
  <securityProperties mode="Transport" protectionLevel="EncryptAndSign" />
  <transportProperties connectionBufferSize="131072" maxBufferPoolSize="268435456" 
                       maxBufferSize="8388608" maxOutputDelay="2" channelInitializationTimeout="60000" 
                       receiveTimeout="600000"/>

次に、コードとは異なりDataCacheFactoryConfigurations、デフォルトを使用するだけでなく、名前を取得するコンストラクターを使用します。

DataCacheFactoryConfiguration localCachingFactoryConfig = new DataCacheFactoryConfiguration("LocalCaching");

DataCacheFactoryConfiguration remoteOnlyCachingFactoryConfig = new DataCacheFactoryConfiguration("RemoteOnlyCaching");

次に、作業しているデータに必要なキャッシュのタイプに基づいて、適切なファクトリからコードでDataCacheインスタンスを作成します。

于 2012-10-19T19:58:46.113 に答える