应用程序配置设置(AppFabric 1.1 缓存)

使用 Microsoft AppFabric 1.1 for Windows Server 的缓存功能,您可以通过使用应用程序配置文件或通过使用应用程序中不同位置上的方法,以编程方式配置应用程序的缓存客户端设置。有关按每个配置方法和如何选择的详细信息,请参阅配置缓存客户端

无论采用何种方法,均配置相同的缓存客户端设置。本主题中的表格显示缓存客户端可用的设置,并显示在基于 XML 的应用程序配置文件中的配置方法,以及以编程方式、通过使用节点的配置方法。

有关如何使用应用程序中的这些设置的详细信息,请参阅基于 XML 的客户端配置

缓存客户端设置

每个缓存客户端都定义了配置设置。如果您使用某个配置文件,则将该文件包含在可以嵌入到 dataCacheClients 部分的一个或多个 dataCachClient 部分中。例如:

  <dataCacheClients>
    <dataCacheClient name="default">
      <hosts>
        <host name="CacheServer1" cachePort="22233" />
        <host name="CacheServer2" cachePort="22233" />
      </hosts>
    </dataCacheClient>
    <dataCacheClient name="compressedCache" isCommpressionEnabled="true">
      <hosts>
        <host name="CacheServer1" cachePort="22233" />
        <host name="CacheServer2" cachePort="22233" />
      </hosts>
    </dataCacheClient>
  </dataCacheClients>

在上面的示例中,在配置文件中定义了两个缓存客户端:defaultcompressedCache。若要访问默认缓存,您无需指定缓存客户端名称。例如:

DataCacheFactory factory = new DataCacheFactory();

若要指定名为 dataCacheClient 的任何其他部分,必须使用 DataCacheFactoryConfiguration 构造函数指定缓存客户端部分名称。

DataCacheFactoryConfiguration factoryConfig = new DataCacheFactoryConfiguration("compressedCache");
DataCacheFactory factory = new DataCacheFactory(factoryConfig)

如果未使用应用程序配置文件,则可以采用编程方式通过 DataCacheFactoryConfiguration 类的属性定义所有设置。

设置 XML 配置位置 代码配置位置

压缩(布尔型)

dataCacheClient 元素中的 isCompressionEnabled 属性。默认值为 false

DataCacheFactoryConfiguration 类的 IsCompressionEnabled 属性。

客户端超时(毫秒)

dataCacheClient 元素中的 requestTimeout 属性。我们不建议指定小于 10000(10 秒)的值。默认值为 15000

DataCacheFactoryConfiguration 类的 RequestTimeout 属性。

频道打开超时(毫秒)

dataCacheClient 元素中的 channelOpenTimeout 属性。可以将该值设置为 0 以便立即处理任何网络问题。有关详细信息,请参阅配置缓存客户端超时。默认值为 3000

DataCacheFactoryConfiguration 类的 ChannelOpenTimeout 属性。

与服务器的最大连接数

dataCacheClient 元素中的 maxConnectionsToServer 属性。默认值为 1

DataCacheFactoryConfiguration 类的 MaxConnectionsToServer 属性。

缓存主机设置

对于每个缓存客户端,您必须指定群集中的一个或多个缓存主机。指定主要主机,因为将缓存主机指定为主要主机可帮助管理群集。主要主机是最初安装在群集中的首个缓存主机。有关主要主机的详细信息,请参阅 AppFabric 缓存物理体系结构图(AppFabric 1.1 缓存)

在应用程序配置文件中,将在主机元素(hosts 元素的子元素)中指定每个缓存主机的设置。以编程方式来说,在 DataCacheServerEndpoint 类的类构造函数中会定义每个主机。对其进行实例化之后,这些 DataCacheServerEndPoint 对象随后将传递到 DataCacheServerEndpoint 类的 Servers 属性。

设置 XML 配置位置 代码配置位置

缓存服务器名称

host 元素的 name 属性。

DataCacheServerEndpoint 类的 HostName 属性。

缓存端口号

host 元素的 cachePort 属性。

DataCacheServerEndpoint 类的 CachePort 属性。

本地缓存设置

本地缓存设置指定是否应启用本地缓存,应使本地缓存对象失效的方式,对象超时以及缓存通知是否应该用于使本地缓存对象失效。

在应用程序配置文件中,本地缓存设置定义在 localCache 元素(dataCacheClient 元素的子)中。采用编程方式,将本地缓存配置为传递给 DataCacheFactory 类构造函数的构造函数的 DataCacheFactoryConfiguration 类的实例。有关本地缓存的详细信息,请参阅缓存客户端和本地缓存(AppFabric 1.1 缓存)

设置 XML 配置位置 代码配置位置

本地缓存已启用

localCache 元素中的 isEnabled 属性。值可以是 truefalselocalCache 元素也可能缺失,以表明该元素已禁用。

DataCacheLocalCacheProperties 类的 IsEnabled 属性。然后,这将分配给 DataCacheFactoryConfiguration 类的 LocalCacheProperties 属性。

本地缓存失效方法

localCache 元素中的 sync 属性。TimeoutBased 值用于表明应使用超时值。NotificationBased 用于表明还应使用缓存通知。

DataCacheLocalCacheProperties 类的 InvalidationPolicy 属性。可能的值包括 NotificationBasedTimeoutBased

本地缓存超时(秒)

localCache 元素中的 ttlValue 属性。

DataCacheLocalCacheProperties 类的 DefaultTimeout 属性。

指定缓存通知轮询时间间隔(秒)

(可选)由 clientNotification 元素的 pollInterval 属性指定。clientNotification 元素是 dataCacheClient 元素的子,而非 localCache 元素的子。如果未指定,则将使用值 300 秒。

DataCacheNotificationProperties 类的 PollInterval 属性。然后,这将分配给 DataCacheFactoryConfiguration 类的 NotificationProperties 属性。

本地缓存对象的最大计数

(可选)由 localCache 元素中的 objectCount 属性指定。本地缓存上应启动逐出时进行触发;然后它将尝试删除最近最少使用的 20% 的本地缓存对象。如果未指定,则使用默认值 10,000 个对象。

DataCacheLocalCacheProperties 类的 ObjectCount 属性。

备注

为获得最佳性能,仅启用较少更改的对象的本地缓存。使用经常更改数据的本地缓存可能增加客户端将使用过时对象的机会。虽然您可以降低 ttlValue,并且更频繁地刷新本地缓存,但群集上增加的负载可能超过使用本地缓存的优势。在经常更改数据的情况下,最好禁用本地缓存并从群集中直接提取数据。

通知设置

在应用程序配置文件中,通知属性是在 clientNotification 元素(dataCacheClient 元素的子元素)中定义的。采用编程方式,将通知属性配置为传递给 DataCacheFactory 类构造函数的构造函数的 DataCacheFactoryConfiguration 类的实例。有关详细信息,请参阅配置方法

设置 XML 配置位置 代码配置位置

特定缓存通知轮询时间间隔(秒)

clientNotification 元素的 pollInterval 属性指定。如果未指定,则将使用值 300 秒。

DataCacheNotificationProperties 类的 PollInterval 属性。然后,这将分配给 DataCacheFactoryConfiguration 类的 NotificationProperties 属性。

最大队列长度

clientNotification 元素的 maxQueueLength 属性。如果未指定,则默认值为 10000。

DataCacheNotificationProperties 类的 MaxQueueLength 属性。

安全设置

在应用程序配置文件中,安全属性是在 securityProperties 元素(dataCacheClient 元素的子元素)中定义的。采用编程方式,将安全属性配置为传递给 DataCacheFactory 类构造函数的构造函数的 DataCacheFactoryConfiguration 类的实例。有关详细信息,请参阅配置方法

设置 XML 配置位置 代码配置位置

模式

securityProperties 元素的 mode 属性。可能的值包括 TransportNone。默认值为 Transport

DataCacheSecurity 类的 SecurityMode 属性。可能的值包括 NoneTransport。然后,将 DataCacheSecurity 对象分配给 DataCacheFactoryConfiguration 类的 SecurityProperties 属性。

保护级别

securityProperties 元素的 protectionLevel 属性。可能的值包括 NoneSignEncryptAndSign。默认值为 EncryptAndSign

DataCacheSecurity 类的 ProtectionLevel 属性。可能的值包括 NoneSignEncryptAndSign

传输设置

在应用程序配置文件中,传输属性是在 transportProperties 元素(dataCacheClient 元素的子元素)中定义的。采用编程方式,将传输属性配置为传递给 DataCacheFactory 类构造函数的构造函数的 DataCacheFactoryConfiguration 类的实例。有关详细信息,请参阅配置方法

设置 XML 配置位置 代码配置位置

连接缓冲区大小(字节)

transportProperties 元素的 connectionBufferSize 属性。

DataCacheTransportProperties 类的 ConnectionBufferSize 属性。然后,这将分配给 DataCacheFactoryConfiguration 类的 TransportProperties 属性。

最大缓冲区池大小(字节)

transportProperties 元素的 maxBufferPoolSize 属性。

DataCacheTransportProperties 类的 MaxBufferPoolSize 属性。

最大缓冲区大小(字节)

transportProperties 元素的 maxBufferSize 属性。

DataCacheTransportProperties 类的 MaxBufferSize 属性。

最大输出延迟(毫秒)

transportProperties 元素的 maxOutputDelay 属性。

DataCacheTransportProperties 类的 MaxOutputDelay 属性。

通道初始化超时(毫秒)

transportProperties 元素的 channelInitializationTimeout 属性。

DataCacheTransportProperties 类的 ChannelInitializationTimeout 属性。

接收超时(毫秒)

transportProperties 元素的 receiveTimeout 属性。

DataCacheTransportProperties 类的 ReceiveTimeout 属性。

示例应用程序配置文件

为使 AppFabric 程序集读取应用程序配置文件中的 XML 元素,必须包含 configSections 元素,作为 configuration 标记下文件中的首个元素。在 configSections 元素中,必须包含一个与 dataCacheClient 元素相关联的 section 元素。

以下示例显示一个应用程序配置文件,该文件使用本主题中介绍的许多缓存客户端配置选项。请注意,只需将 dataCacheClient 中的 hosts 元素连接到群集。其他所有子元素都具有默认值。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <!--configSections must be the FIRST element -->
<configSections>
   <!-- required to read the <dataCacheClient> element -->
   <section name="dataCacheClient"
         type="Microsoft.ApplicationServer.Caching.DataCacheClientSection,
            Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0, 
            Culture=neutral, PublicKeyToken=31bf3856ad364e35"
          allowLocation="true"
          allowDefinition="Everywhere"/>
</configSections>

   <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>
</configuration>

另请参阅

概念

配置缓存客户端
群集配置设置
AppFabric 缓存问题疑难解答
使用 Windows PowerShell 管理 AppFabric 1.1 缓存功能
AppFabric 缓存概念(AppFabric 1.1 缓存)
开发缓存客户端

  2012-03-05