共用方式為


應用程式組態設定 (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

DataCacheFactoryConfigurationc 類別的 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 元素的子系) 中定義。本機快取是透過程式設計方式與 DataCacheFactoryConfiguration 類別執行個體一起設定,而此執行個體會傳遞給 DataCacheFactory 類別建構函式的建構函式。如需有關本機快取的詳細資訊,請參閱快取用戶端與本機快取 (AppFabric 1.1 快取)

設定 XML 組態位置 程式碼組態位置

啟用本機快取

localCache 元素中的 isEnabled 屬性。可能的值包括 truefalse。若組態檔中沒有 localCache 元素,則會停用本機快取。

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 元素的子項) 中。通知內容是透過程式設計方式與 DataCacheFactoryConfiguration 類別執行個體一起設定,而此執行個體會傳遞給 DataCacheFactory 類別建構函式的建構函式。如需詳細資訊,請參閱設定方法

設定 XML 組態位置 程式碼組態位置

指定快取通知輪詢間隔 (秒)

透過 clientNotification 元素的 pollInterval 屬性所指定。如果未指定,則會使用 300 秒的值。

DataCacheNotificationProperties 類別的 PollInterval 屬性。接著它會被指派給 DataCacheFactoryConfiguration 類別的 NotificationProperties 屬性。

佇列長度上限

clientNotification 元素的 maxQueueLength 屬性。如果未指定,則預設值是 10000。

DataCacheNotificationProperties 類別的 MaxQueueLength 屬性。

安全性設定

在應用程式組態檔中,安全性內容是定義於 securityProperties 元素 (dataCacheClient 元素的子項) 中。安全性內容是透過程式設計方式與 DataCacheFactoryConfiguration 類別執行個體一起設定,而此執行個體會傳遞給 DataCacheFactory 類別建構函式的建構函式。如需詳細資訊,請參閱設定方法

設定 XML 組態位置 程式碼組態位置

Mode

securityProperties 元素的 mode 屬性。可能的值包括 TransportNone。預設值為 Transport

DataCacheSecurity 類別的 SecurityMode 屬性。可能的值包括 NoneTransportDataCacheSecurity 物件然後會指定給 DataCacheFactoryConfiguration 類別的 SecurityProperties 屬性。

保護層級

securityProperties 元素的 protectionLevel 屬性。可能值包括 NoneSignEncryptAndSign。預設值為 EncryptAndSign

DataCacheSecurity 類別的 ProtectionLevel 屬性。可能值包括 NoneSignEncryptAndSign

傳輸設定

在應用程式組態檔中,傳輸內容是定義於 transportProperties 元素 (dataCacheClient 元素的子項) 中。傳輸內容是透過程式設計方式與 DataCacheFactoryConfiguration 類別執行個體一起設定,而此執行個體會傳遞給 DataCacheFactory 類別建構函式的建構函式。如需詳細資訊,請參閱設定方法

設定 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 屬性。

範例應用程式組態檔

您必須在檔案的 configuration 標記下面,加上 configSections 元素做為第一個元素,才能讓 AppFabric 組件讀取應用程式組態檔中的 XML 元素。在 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