我刚刚开始使用 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(使用前将#替换为@)