Windows Server AppFabric Caching支持大数据量的配置

时间:2022-04-23
本文章向大家介绍Windows Server AppFabric Caching支持大数据量的配置,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Memcache支持的数据量大小为1M,最新版本可以通过配置调整突破1M(参看http://www.cnblogs.com/shanyou/archive/2010/02/01/1661271.html),AppFabric Caching也支持大数据量的缓存。当你看到这样的错误的时候就需要调整参数了。

Microsoft.ApplicationServer.Caching.DataCacheException: ErrorCode<ERRCA0016>:SubStatus<ES0001>:The connection was terminated, possibly due to server or network problems or serialized Object size is greater than MaxBufferSize on server. Result of the request is unknown.

解決方法,必须同时在 服务端及 客户端增加 MaxBufferSize 的配置。

  • 首先是 服务端

Export Cluster Config

Export-CacheClusterConfig -File c:tempappFabriccluster.config 将Cluster 的配置导出到一个xml config 文件。这里我取名叫做 appFabriccluster.config

增加 transportProperties 的配置,按照 Application Configuration Settings 的建议,在上一步驟的appFabriccluster.config 增加下面的配置。
导入并应用配置

在导入配置前,必须先停止 Cluster。导入配置完成后,再启动Cluster。

Stop-CacheCluster Import-CacheClusterConfig -File c:tempappFabriccluster.config Start-CacheCluster

  • 再來是 客户端

在 Client config 加入 transportProperties 配置

   1: <?xml version="1.0" encoding="utf-8" ?>
   2: <configuration>
   3:    <!--configSections must be the FIRST element -->
   4: <configSections>
   5:    <!-- required to read the <dataCacheClient> element -->
   6:    <section name="dataCacheClient"
   7:          type="Microsoft.ApplicationServer.Caching.DataCacheClientSection,
   8:             Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0, 
   9:             Culture=neutral, PublicKeyToken=31bf3856ad364e35"
  10:           allowLocation="true"
  11:           allowDefinition="Everywhere"/>
  12: </configSections>
  13:  
  14:    <dataCacheClient requestTimeout="15000" channelOpenTimeout="3000" maxConnectionsToServer="1">
  15:       <localCache isEnabled="true" sync="TimeoutBased" ttlValue="300" objectCount="10000"/>
  16:       <clientNotification pollInterval="300" maxQueueLength="10000"/>
  17:       <hosts>
  18:          <host name="CacheServer1" cachePort="22233"/>
  19:          <host name="CacheServer2" cachePort="22233"/>
  20:       </hosts>
  21:       <securityProperties mode="Transport" protectionLevel="EncryptAndSign" />
  22:       <transportProperties connectionBufferSize="131072" maxBufferPoolSize="268435456" 
  23:                            maxBufferSize="8388608" maxOutputDelay="2" channelInitializationTimeout="60000" 
  24:                            receiveTimeout="600000"/>
  25:    </dataCacheClient>
  26: </configuration>