共用方式為


從 AppFabric 快取移轉至 Azure 受管理的快取服務

重要

Microsoft 建議所有新的開發都使用 Azure Redis 快取。 如需選擇 Azure 快取供應專案的目前檔和指引,請參閱 哪個 Azure 快取供應專案適合我?

本主題描述如何從 Microsoft AppFabric 1.1 for Windows Server 移轉至 Azure 受控快取服務。 當您將內部部署應用程式移至 Azure 時,可能會進行這種類型的快取移轉。

AppFabric 支援使用您本身之伺服器以及網路基礎架構的內部部署快取叢集。 移至 Azure 是藉由 AppFabric 的大部分功能和程式設計模型與受控快取服務共用。

  • 移轉計畫

    • 分析 AppFabric 快取叢集

    • 選擇快取供應項目

  • 使用快取服務重新建立快取叢集

    • 建立快取

    • 設定快取

  • 設定快取用戶端

    • 安裝此 快取 NuGet 封裝

    • 移轉應用程式程式碼

移轉計畫

將已啟用快取的應用程式移轉至雲端之前,請先檢閱 AppFabric 與 Microsoft Azure Cache 之間的差異。 如果您需要Microsoft Azure快取中無法使用的功能,例如讀取或寫入後置,您必須重新設計解決方案的該部分,才能順利移至 Azure。

  • 分析 AppFabric 快取叢集

  • 選擇快取供應項目

分析 AppFabric 快取叢集

所有快取及其相關設定都必須在 受控快取服務 中重新建立。 首先必須要分析 AppFabric 快取叢集,以便瞭解目前的內部部署設定。

  1. 在 AppFabric 快取叢集中,開啟 [快取管理 Windows PowerShell] 命令提示字元。

  2. 執行 Get-Cache 命令,而不需任何參數。 這樣會列出具名的快取。

  3. 針對列出的每個快取,執行 Get-CacheConfig 命令。 將快取名稱視為引數,傳送給此命令。 記錄每個快取的組態設定。 以下是此輸出的範例。

    PS C:\Windows\system32> Get-CacheConfig TestCache
    
    CacheName                : TestCache
    TimeToLive               : 20 mins
    CacheType                : Partitioned
    Secondaries              : 0
    MinSecondaries           : 0
    IsExpirable              : True
    EvictionType             : None
    NotificationsEnabled     : True
    WriteBehindEnabled       : False
    WriteBehindInterval      : 300
    WriteBehindRetryInterval : 60
    WriteBehindRetryCount    : -1
    ReadThroughEnabled       : False
    ProviderType             :
    ProviderSettings         : {}
    
  4. 執行 Get-CacheHost 命令,以查看快取叢集中的快取主機清單。

  5. 針對每個快取主機,執行 Get-CacheHostConfig 命令。 傳送必要的引數、快取主機名稱以及快取連接埠 (通常為 22233)。 記錄每個快取主機的 Size 參數。

  6. 為所有快取主機新增 Size 值,以決定快取叢集的整體大小。 在 Size 受控快取服務中建立新快取時,這可作為判斷快取供應專案和容量的起點。

選擇快取供應項目

下列三個供應專案提供受控快取服務。

  • 基本 - 大小從 128MB 到 1GB 的快取 (每次增量 128MB),具有一個預設具名快取

  • 標準 - 大小介於 1GB 到 10GB 且以 1GB 為增量單位的快取,其中支援通知、高可用性以及最多 10 個具名快取

  • 高級 - 大小從 5GB 到 150GB 的快取 (每次增量 5GB),支援通知、高可用性和最多 10 個具名快取

注意

每個供應項目的價格和功能都不相同。 如需詳細資訊,請參閱 快取服務定價常見問題。 此移轉指南的一節也會提供其他詳細資料。

Microsoft AppFabric 1.1 for Windows Server的大部分快取功能都可在受控快取服務 (中使用,但讀取和寫入後置) 除外,但並非所有受控快取服務功能都適用于所有受控快取服務快取供應專案。 如果您的應用程式使用通知或高可用性,您應該選擇標準或進階版快取供應專案。 移轉的起點是挑選具有應用程式所需快取功能的受控快取服務快取供應專案,並符合 Microsoft AppFabric 1.1 for Windows Server快取的容量,如分析 AppFabric 快取叢集中所述。 部署應用程式之後,您可以監視快取的效能,並根據應用程式的需求相應增加或減少。 如需監視效能和調整的詳細資訊,請參閱監視 Azure 受控快取服務調整適用于 Azure 受控快取服務的快取

使用快取服務重新建立快取叢集

若要使用 受控快取服務 重新建立 Microsoft AppFabric 1.1 for Windows Server快取叢集,請執行下列步驟。

  • 建立快取

  • 設定快取

警告

不支援在相同的開發電腦上安裝 AppFabric 和 Azure SDK。 這些步驟假設您使用個別的電腦,或是在安裝 Azure SDK 之前完全卸載 AppFabric。

建立快取

受控快取服務中的快取實例是使用 PowerShell 腳本建立的。

重要

一旦使用 PowerShell Cmdlet 建立受控快取服務實例,就可以在Azure 管理入口網站中檢視和設定實例。

建立受控快取服務實例

  1. 開啟 Azure PowerShell 命令視窗。

    注意

    如需安裝和使用 Azure PowerShell 的指示,請參閱 如何安裝和設定 Azure PowerShell

  2. 叫用 Add-AzureAccount Cmdlet,並輸入與您帳戶相關的電子郵件地址及密碼。

    注意

    如果您已使用帳戶的憑證來設定 Azure PowerShell,那麼就可以跳過此步驟。 如需將 Azure PowerShell 與 Azure 帳戶連接的詳細資訊,請參閱 如何安裝和設定 Azure PowerShell

  3. 叫用 New-AzureManagedCache Cmdlet 並指定名稱、區域、快取供應項目以及快取大小。 如果是下列範例,基本的 128MB 快取會在 contosocache 地理區域中以 South Central US 的名稱建立。

    New-AzureManagedCache -Name contosocache -Location "South Central US" -Sku Basic -Memory 128MB
    

    注意

    如需建立快取時可使用之參數和值的完整清單,請參閱 New-AzureManagedCache Cmdlet 文件。

  4. 叫用 PowerShell Cmdlet 之後,可能需要數分鐘的時間建立快取。 建立快取之後,您的新快取具有 [執行 中] 狀態,且已準備好搭配預設設定使用,而且可以在 Azure 管理入口網站中檢視和設定。

    您可以在 Azure PowerShell 視窗中監視建立進度。 一旦快取可供使用,New-AzureManagedCache Cmdlet 會顯示快取資訊,如以下範例所示。

    PS C:\> Add-AzureAccount
    VERBOSE: Account "user@domain.com" has been added.
    VERBOSE: Subscription "MySubscription" is selected as the default subscription.
    VERBOSE: To view all the subscriptions, please use Get-AzureSubscription.
    VERBOSE: To switch to a different subscription, please use Select-AzureSubscription.
    PS C:\> New-AzureManagedCache -Name contosocache -Location "South Central US" -Sku Basic -Memory 128MB
    VERBOSE: Intializing parameters...
    VERBOSE: Creating prerequisites...
    VERBOSE: Verify cache service name...
    VERBOSE: Creating cache service...
    VERBOSE: Waiting for cache service to be in ready state...
    
    
    Name     : contosocache
    Location : South Central US
    State    : Active
    Sku      : Basic
    Memory   : 128MB
    
    
    
    PS C:\>
    

設定快取

Microsoft AppFabric 1.1 for Windows Server和受控快取服務支援具名快取,可讓您彈性地為不同的資料集設定不同的快取選項。 每個受控快取服務快取都有預設的具名快取,而且在標準和進階版快取供應專案中,最多可以設定九個額外的具名快取。 每個具名快取都具有其自己的個別設定,例如高可用性、通知、以及自訂收回和到期原則。 具名快取設定會在快取的 [設定] 索引標籤中的 [管理入口網站] 中設定。

Named Caches in Windows Azure Cache Service

下表會將 Get-CacheConfig 的輸出與快取視窗中的設定相互關聯。

Get-CacheConfig 設定 受控快取服務設定

CacheName

名稱

TimeToLive

時間 (分鐘)

次要 (0, 1)

高可用性 (0 = 停用, 1 = 啟用)

IsExpirable (True,False)

到期原則 (True = 絕對, False = 永不)

受控快取服務有名為滑動的第三個到期原則,其中每次存取專案時,專案的逾時間隔都會重設。

EvictionType (無,LRU)

到期原則 (None = 停用, LRU = 啟用)

NotificationsEnabled (True,False)

通知 (True = 啟用,False = 停用)

注意

Microsoft Azure Cache 不支援此處未列出的任何 AppFabric 快取設定。

移除 AppFabric 快取設定

必須先移除現有的 Microsoft AppFabric 1.1 for Windows Server組態和元件參考,才能設定用戶端應用程式受控快取服務。

若要手動移除 Microsoft AppFabric 1.1 for Windows Server組態,您必須移除 Microsoft AppFabric 1.1 for Windows Server元件參考和 Microsoft AppFabric 1.1 for Windows Server或 web.configapp.config 組態。

若要移除 Microsoft AppFabric 1.1 for Windows Server元件參考,請選取方案總管中的快取用戶端專案,然後展開[參考] 資料夾。 在以下清單中的每個組件上,在 [方案總管] 中的 [參照] 資料夾上按一下滑鼠右鍵,再選擇 [移除]。 若用戶端為 Web 專案,也請移除 Microsoft.Web.DistributedCache

  • Microsoft.ApplicationServer.Caching.Client

  • Microsoft.ApplicationServer.Caching.Core

  • Microsoft.WindowsFabric.Common

  • Microsoft.WindowsFabric.Data.Common

若要移除 Microsoft AppFabric 1.1 for Windows Server組態,請開啟 web.config 快取用戶端專案的 或 app.config ,並移除下列兩個專案。

  • dataCacheClients 元素中移除 configSections 項目。 請勿移除整個 configSections 項目,只需移除 dataCacheClients 項目 (若存在)。

    <configSections>
      <!-- Existing sections omitted for clarity. -->
      <section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere" />
    </configSections>
    
  • 移除的 dataCacheClients 區段必須與下列範例類似。

    <dataCacheClients>
      <dataCacheClient name="default">
        <hosts>
          <host name="MyCacheNamespace.cache.windows.net" cachePort="22233" />
        </hosts>
    
        <securityProperties mode="Message">
          <messageSecurity 
            authorizationInfo="Your authorization token will be here.">
          </messageSecurity>
        </securityProperties>
      </dataCacheClient>
    </dataCacheClients>
    

一旦移除了這些項目,您就可以遵循下一節中的步驟來設定您的快取用戶端。

設定快取用戶端

一旦新快取建立並設定完成,會設定快取用戶端以使用快取。

  • 安裝此 快取 NuGet 封裝

  • 移轉應用程式程式碼

安裝此 快取 NuGet 封裝

Microsoft Azure Cache 提供NuGet套件,以新增必要的組態和元件參考,以允許快取用戶端存取快取。

重要

使用 受控快取服務 NuGet 套件設定快取用戶端之前,請確定 Microsoft AppFabric 1.1 for Windows Server組態已從 web.configapp.config 用戶端專案完全移除,如上一節所述。

重要

這些步驟需要最新的 NuGet 封裝管理員 (版本 2.6.40627.9000 或更高)。 若要安裝最新的NuGet 封裝管理員,請參閱NuGet 封裝管理員

若要使用受控快取服務 NuGet套件,請以滑鼠右鍵按一下方案總管中的用戶端專案,然後選擇 [管理NuGet套件]。

選取 [Azure Caching],並依序按一下 [安裝] 與 [我接受]。 當封裝安裝到用戶端專案後,按一下 [關閉] 即可關閉 [管理 NuGet 封裝] 視窗。

注意

如果 [Azure Caching] 未出現在清單中,請在 [線上搜尋] 文字方塊中輸入 WindowsAzure.Caching

Windows Azure Cache NuGet Package

當受控快取服務 NuGet套件安裝至用戶端專案時,它會新增必要的組態和元件參考,讓用戶端應用程式可以存取快取。

在快取專案的 web.configapp.config 中會新增數個項目。

  1. 會新增兩個區段到 configSections,名為 dataCacheClientscacheDiagnostics

    <!-- Non-cache sections omitted for space -->
      <configSections>
        <section name="dataCacheClients" 
            type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" 
            allowLocation="true" 
            allowDefinition="Everywhere" />
    
        <section name="cacheDiagnostics" 
            type="Microsoft.ApplicationServer.Caching.AzureCommon.DiagnosticsConfigurationSection, Microsoft.ApplicationServer.Caching.AzureCommon" 
            allowLocation="true" 
            allowDefinition="Everywhere" />
      </configSections>
    
  2. 新增至 dataCacheClients 區段的 configuration 區段。

    <!-- Non-cache sections omitted for space -->
      <dataCacheClients>
        <dataCacheClient name="default">
          <!--To use the in-role flavor of Azure Caching, set identifier to be the cache cluster role name -->
          <!--To use the Azure Caching Service, set identifier to be the endpoint of the cache cluster -->
          <autoDiscover
            isEnabled="true" 
            identifier="[Cache role name or Service Endpoint]" />
          <!--<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />-->
          <!--Use this section to specify security settings for connecting to your cache. 
              This section is not required if your cache is hosted on a role that is a part 
              of your cloud service. -->
          <!--<securityProperties mode="Message" sslEnabled="false">
            <messageSecurity authorizationInfo="[Authentication Key]" />
          </securityProperties>-->
        </dataCacheClient>
      </dataCacheClients>
    

    [快取角色名稱或服務端點] 取代為管理入口網站中快取儀表板上顯示的端點。

    Endpoint URL for Windows Azure Cache Service
    在此範例中,快取名為 applicationcache,而端點 會 applicationcache.cache.windows.net

    <autoDiscover isEnabled="true" identifier="applicationcache.cache.windows.net" />
    

    取消批註 securityProperties 區段,並將 [驗證金鑰] 取代為驗證金鑰。

    <!--Use this section to specify security settings for connecting to your cache. 
        This section is not required if your cache is hosted on a role that is a part 
        of your cloud service. -->
    <!--<securityProperties mode="Message" sslEnabled="false">
      <messageSecurity authorizationInfo="[Authentication Key]" />
    </securityProperties>-->
    

    按一下快取儀表板中的 [管理金鑰],可以在管理入口網站中找到驗證金鑰。

    Manage Access Keys for Windows Azure Cache Service 屬性 sslEnabled 會設定快取用戶端與快取之間的通訊是否使用 SSL 加密。 如需使用 sslEnabled 屬性的詳細資訊,請參閱 保護快取用戶端與快取之間的通訊

    警告

    必須適當地配置這些設定,否則用戶端將無法存取快取。

針對雲端服務專案,受控快取服務 NuGet套件也會將ClientDiagnosticLevel設定新增至 ConfigurationSettings 中快取用戶端角色的 ServiceConfiguration.cscfg 。 下列範例是 WebRole1來自 ClientDiagnosticLevel為 1 之檔案的區段 ServiceConfiguration.cscfg ,這是預設的 ClientDiagnosticLevel

<Role name="WebRole1">
  <Instances count="1" />
  <ConfigurationSettings>
    <!-- Other settings omitted for space... -->
    <Setting name="Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel" value="1" />
  </ConfigurationSettings>
</Role>

注意

如需快取診斷層級的詳細資訊,請參閱關於 Azure 受控快取服務 的 ClientDiagnosticLevel

除了新增必要的組態之外,受控快取服務 NuGet套件也會新增下列元件參考。

  • Microsoft.ApplicationServer.Caching.Client.dll

  • Microsoft.ApplicationServer.Caching.Core.dll

  • Microsoft.ApplicationServer.Caching.AzureCommon.dll

  • Microsoft.ApplicationServer.Caching.AzureClientHelper.dll

  • Microsoft.WindowsFabric.Common.dll

  • Microsoft.WindowsFabric.Data.Common.dll

如果專案是 Web 專案,則也會新增下列組件參考。

  • Microsoft.Web.DistributedCache.dll

注意

受控快取服務和 Microsoft AppFabric 1.1 for Windows Server共用相同的 API,雖然元件名稱相同,但元件本身不同,而且位於不同的位置。 受控快取服務 NuGet套件會新增正確的受控快取服務元件參考。 受控快取服務元件位於 C:\Program Files\Microsoft SDKs\Azure\.NET SDK[SDk Version]\ref\Caching 資料夾中。

移轉應用程式程式碼

最後一個步驟是移動任何應用程式程式碼以使用受控快取服務。 請注意命名空間和大部份 API 仍維持相同,可能會有小部分的變更。 如需詳細資訊,請參閱內部部署 AppFabric 1.1 快取與 Azure 受控快取服務之間的差異