混合使用 AppFabric 本地缓存和服务器缓存

2024-03-03

我刚刚开始使用 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>

看起来启用本地缓存是为整个缓存客户端启用的?

为了支持我描述的场景,这是否意味着我必须创建两个缓存客户端,并且我的代码必须知道/知道将数据放入哪个缓存客户端?或者在将数据存储到缓存时是否可以使用 API/标志/参数?或者也许,通过使用区域/标签来处理?

Thanks!


假设您使用的是 AppFabric 1.1,您可以配置多个dataCacheClient节点 http://msdn.microsoft.com/en-us/library/hh351483.aspx具有不同的配置。因此,使用现有的示例,您将执行以下操作:

<!-- 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 实例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

混合使用 AppFabric 本地缓存和服务器缓存 的相关文章

随机推荐