VENDAS: 1-800-867-1389

Migrar do cache compartilhado do Azure para cache na função

Atualizado: julho de 2010

noteObservação
Para orientação sobre como escolher a oferta Azure Cache para seu aplicativo, consulte Qual oferta de cache do Azure é ideal para mim?.

A migração de aplicativos que usam o Microsoft Azure Shared Caching para o cache do Cache na Função pode ser realizada com alterações mínimas no aplicativo. Como o Cache na Função usa a mesma API do Shared Caching, o código existente que usa o Shared Caching para acessar um cache pode ser reutilizado para acessar um cache na função do Cache na Função. Este tópico mostra como fazer as alterações necessárias na configuração e no aplicativo do Shared Caching para migrá-lo para usar o Cache na Função.

noteObservação
Para obter mais informações sobre os benefícios do uso do Cache na Função, consulte Sobre cache na função para cache do Azure.

O Cache na Função fornece a capacidade de hospedar serviços do caching em funções do . Nesse modelo, o cache faz parte do seu serviço de nuvem. Uma função do serviço de nuvem é selecionada para hospedar o Cache na Função. As instâncias dessa função em execução unem os recursos de memória para formar um cluster de cache. Esse cluster privado de cache está disponível somente para as funções dentro da mesma implantação. Existem duas topologias de implantação para o Cache na Função: dedicada e colocalizada.

 

Topologia de implantação de um cluster de cache Descrição

Cache de função dedicada

Instâncias de função de trabalho são usadas exclusivamente para cache.

Cache de função colocalizada

O cache compartilha os recursos da VM (largura de banda, CPU e memória) com o aplicativo principal hospedado pela função.

Se o seu aplicativo tiver memória não utilizada nas funções existentes, você poderá configurar um cluster de cache de função colocalizada nessas funções e usar a memória extra para o cache. Se não houver memória extra suficiente nas funções para oferecer suporte a um cluster de cache, você poderá redimensionar as funções ou adicionar uma função de trabalho de cache e configurar um cluster de cache de função dedicada.

Para configurar um cluster de cache de função dedicada, adicione uma função de trabalho de cache ao seu projeto. Para adicionar uma função de trabalho de cache, expanda o no Gerenciador de Soluções, se já não estiver expandido.

noteObservação
O cache de função dedicada só tem suporte em funções de trabalho e não pode ser configurado em funções web.

Clique com o botão direito do mouse na pasta Funções no projeto do e escolha Adicionar, Novo Projeto de Função de Trabalho e Função de Trabalho de Cache. Digite o nome da função desejada na caixa Nome e clique em Adicionar.

Adicionar função de trabalho do cache

Uma função de trabalho de cache é pré-configurada para cache de função dedicada. Para exibir as configurações, clique com o botão direito do mouse na função recém-adicionada no , na pasta Funções, e escolha Propriedades.

Menu de contexto das propriedades da função de trabalho do cache

Alterne para a guia Cache para ver as propriedades de cache da função de trabalho de cache.

Propriedades da função de trabalho do cache

Como essa é uma função de trabalho de cache, a caixa de seleção Habilitar Cache já está marcada e o cache de Função Dedicada está selecionado. As propriedades do cache são configuradas na seção Configurações de Cache Nomeado. Há algumas diferenças entre as configurações de cache do Cache na Função e do Microsoft Azure Shared Caching. Essas configurações serão descritas a seguir, nas seções Configurar a conta de armazenamento de cluster de cache e Configurar os parâmetros de cache nomeado.

Alterne para a guia Configuração.

Tamanho da VM da instância de função e contagem de instâncias

A Contagem de instâncias padrão é 1 e o Tamanho da VM padrão é Pequena. Modifique esses parâmetros para que correspondam à configuração desejada. O guia Considerações sobre planejamento de capacidade para cache na função (cache do Azure) pode fornecer orientação sobre quais configurações devem ser escolhidas para atender aos requisitos de cache do aplicativo.

Depois de adicionar a função de trabalho de cache e configurar o tamanho da máquina virtual e a contagem de instâncias, você poderá configurar o cache conforme é descrito na seção Configurar os parâmetros de cache nomeado a seguir.

Para configurar um cluster de cache de função colocalizada, clique com o botão direito do mouse na função desejada na pasta Funções do e escolha Propriedades.

Propriedades da Função Web

Alterne para a guia Cache, marque a caixa de seleção Habilitar Cache e especifique as opções de cache desejadas. A configuração padrão aloca 30% da memória na instância de função para cache. Ajuste o controle deslizante Tamanho do Cache (%) para configurar o tamanho de cache desejado.

Propriedades de função de Caching

Uma aproximação muito básica da fórmula empregada para determinar o tamanho do cache é multiplicar o número de instâncias de função pela quantidade de memória, com base no tamanho da máquina virtual, e obter a porcentagem especificada. É importante ressaltar que essa fórmula é uma aproximação muito rudimentar; para obter mais informações sobre as configurações necessárias para provisionar um cache do tamanho desejado, consulte Considerações sobre planejamento de capacidade para cache na função (cache do Azure). Se forem necessárias instâncias de função adicionais ou um maior tamanho de máquina virtual para hospedar com êxito o cluster de cache, isso poderá ser especificado na guia Configuração.

O Cache na Função requer uma conta de armazenamento do . A conta de armazenamento é usada para conter dados de configuração sobre o cluster de cache, que são acessados de todas as máquinas virtuais que compõem o cluster. Essa conta de armazenamento é especificada na guia Cache da página de propriedades da função de cluster de cache, imediatamente acima das Configurações de Cache Nomeado.

Conta de armazenamento do cluster de cache
ImportantImportante
Se a conta de armazenamento não for configurada, as funções não serão iniciadas.

Os parâmetros de cache são configurados na seção Configurações de Cache Nomeado.

Configurações do cache nomeado

Há algumas diferenças entre as configurações de cache do Cache na Função e do Microsoft Azure Shared Caching.

 

Recurso Suporte do Cache na Função Suporte do Microsoft Azure Shared Caching

Nome

Um cache padrão é configurado e, opcionalmente, caches nomeados adicionais podem ser configurados.

Somente cache padrão.

Alta Disponibilidade

Fornece alta disponibilidade para os itens no cache. Se uma função fica inoperante, uma cópia de backup dos itens em cache continua disponível.

Sem alta disponibilidade.

Notificações

As notificações permitem que seu aplicativo receba notificações assíncronas quando várias operações de cache ocorrem no cluster de cache.

Para obter mais informações, consulte Notificações (cache na função para cache do Azure)

Sem suporte.

Política de Remoção

As opções são LRU (menos utilizado recentemente) ou Nenhum. O padrão é LRU.

Somente LRU.

Vida útil (min)

A expiração padrão para itens no cache é de 10 minutos, mas é configurável. O tempo de expiração para itens individuais adicionados ao cache também pode ser especificado usando sobrecargas de Add e Put quando itens são adicionados ao cache.

A expiração padrão é de 24 horas e não é configurável. O tempo de expiração para itens individuais adicionados ao cache pode ser configurado usando sobrecargas de Add e Put quando esses itens são adicionados ao cache.

Tipo de Expiração

Existem três tipos de expiração: Nenhuma, Absoluta e Janela Deslizante. Quando Absoluta é especificado, o intervalo de expiração especificado por Vida Útil (min) começa quando um item é adicionado ao cache. Quando Janela Deslizante é especificado, o intervalo é redefinido cada vez que um item é acessado no cache. Quando Nunca é especificado, a Vida Útil (min) deve ser definida como 0 e os itens não expiram. O padrão é Absoluta.

Para obter mais informações, consulte Expiração e remoção (cache na função para cache do Azure).

A política de expiração é absoluta. O intervalo de expiração começa quando itens são adicionados ao cache.

Tendo configurado o cluster de cache, a próxima etapa é adicionar a configuração e as referências necessárias para que os clientes de cache possam acessá-lo. No Cache na Função, o cliente pode ser qualquer das funções na mesma implantação do cluster de cache. Ao acessar um cluster de cache de função colocalizada, o cliente pode ser a própria função que hospeda o cluster de cache. Para configurar os clientes de cache, execute as etapas a seguir com cada função que acesse o cache.

Para que as funções clientes possam ser configuradas para o Cache na Função, a configuração e as referências a assembly existentes do Shared Caching devem ser removidas. Se o Shared Caching tiver sido configurado usando o pacote NuGet do Shared Caching, a configuração poderá ser removida desinstalando o pacote NuGet do Shared Caching; caso contrário, ela terá que ser removida manualmente.

Para desinstalar o pacote NuGet do Shared Caching, clique com o botão direito do mouse na função cliente desejada no Gerenciador de Soluções e escolha Gerenciar Pacotes NuGet. Selecione o nó Pacotes instalados e digite Cache na caixa Pesquisar pacotes instalados. Selecione Cache Compartilhado do Azure, clique em Desinstalar e, em seguida, clique em Fechar.

Desinstalar pacote de NuGet de Shared Caching
noteObservação
Se não houver um pacote NuGet do Microsoft Azure Shared Caching na lista, clique em Fechar e siga as etapas descritas em Remover manualmente a configuração de cache compartilhado.

A desinstalação do pacote NuGet do Shared Caching remove os assemblies do Shared Caching e as entradas do Shared Caching no app.config ou web.config da função cliente. Como algumas configurações personalizadas podem não ser removidas ao desinstalar o pacote NuGet, abra o web.config ou o app.config e certifique-se de que os elementos a seguir foram completamente removidos.

  • Verifique se a entrada dataCacheClients foi removida do elemento configSections. Não remova todo o elemento configSections; remova apenas a entrada dataCacheClients, se estiver presente.

    <configSections>
      <!-- Existing sections omitted for clarity. -->
      <section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere" />
    </configSections>
    
  • Verifique se a seção dataCacheClients foi removida. A seção dataCacheClients será semelhante ao exemplo a seguir.

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

Depois de remover a configuração do Shared Caching, você poderá configurar o cliente de cache conforme descrito na seção Configurar um cliente de cache usando o pacote NuGet de cache a seguir.

Para remover manualmente a configuração do Shared Caching, você terá que remover as referências a assembly do Shared Caching e a configuração do Shared Caching de app.config ou web.config.

Para remover as referências a assembly do Shared Caching, selecione a função cliente desejada no Gerenciador de Soluções e expanda a pasta Referências. Para cada assembly na lista a seguir, clique com o botão direito do mouse na pasta Referências no Gerenciador de Soluções e escolha Remover. Se a função cliente for uma função web, remova também Microsoft.Web.DistributedCache.

  • Microsoft.ApplicationServer.Caching.Client

  • Microsoft.ApplicationServer.Caching.Core

  • Microsoft.WindowsFabric.Common

  • Microsoft.WindowsFabric.Data.Common

Para remover a configuração do Shared Caching, abra o arquivo web.config ou app.config da função cliente e remova os dois itens a seguir.

  • Remova a entrada dataCacheClients do elemento configSections. Não remova todo o elemento configSections; remova apenas a entrada dataCacheClients, se estiver presente.

    <configSections>
      <!-- Existing sections omitted for clarity. -->
      <section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere" />
    </configSections>
    
  • Remova a seção dataCacheClients, que será semelhante à do exemplo a seguir.

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

Tendo removido esses itens, você poderá seguir as etapas descritas na próxima seção para configurar seu cliente de cache.

O Cache na Função fornece um pacote NuGet a fim de adicionar a configuração e as referências a assembly necessárias para permitir que as funções clientes acessem um cluster de cache.

ImportantImportante
Antes de configurar o cliente de cache usando o pacote NuGet do Cache na Função, certifique-se de que a configuração do Shared Caching foi completamente removida do web.config ou app.config da função cliente, conforme descrito na seção anterior.

Para usar o pacote NuGet do Cache na Função, clique com o botão direito do mouse na função cliente desejada no Gerenciador de Soluções e escolha Gerenciar Pacotes NuGet.

Gerenciar pacotes NuGet

Selecione Cache do Azure, clique em Instalar e, em seguida, clique em Aceito. Depois que o pacote for instalado na função, clique em Fechar para fechar a janela Gerenciar Pacotes NuGet.

noteObservação
Se Cache do Azure não aparecer na lista, digite WindowsAzure.Caching na caixa de texto Pesquisar Online.

Habilitar Caching usando NuGet

Quando é instalado em uma função cliente, o pacote NuGet do Cache na Função adiciona a configuração e as referências a assembly necessárias para que a função cliente possa acessar o cluster de cache desejado.

Vários itens são adicionados ao arquivo web.config ou app.config da função.

  1. Duas seções são adicionadas ao configSections, denominadas dataCacheClients e cacheDiagnostics.

    <configSections>
      <!-- Existing sections omitted for clarity. -->
      <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. Uma seção dataCacheClients é adicionada à seção configuration.

    <dataCacheClients>
      <dataCacheClient name="default">
        <autoDiscover isEnabled="true" identifier="[cache cluster role name]" />
        <!--<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />-->
      </dataCacheClient>
    </dataCacheClients>
    
    Substitua [cache cluster role name] pelo nome da função que hospeda o cluster de cache. No exemplo a seguir, [cache cluster role name] foi substituído por CacheWorkerRole1.

    <autoDiscover isEnabled="true" identifier="CacheWorkerRole1" />
    
    WarningAviso
    Se esse parâmetro não for configurado corretamente, os clientes não conseguirão acessar o cache. Se o identificador não estiver mapeado a uma função, uma TargetInvocationException será gerada quando o cache for acessado, com uma DataCacheException interna contendo uma mensagem semelhante à seguinte: The role [cache cluster role name] was not found in the current deployment. Se o identificador estiver mapeado a uma função que não hospeda um cluster de cache na implantação, uma InvalidOperationException será gerada com a seguinte mensagem: No Endpoints found.

  3. Uma seção cacheDiagnostics também é adicionada à seção configuration.

    <cacheDiagnostics>
      <crashDump dumpLevel="Off" dumpStorageQuotaInMB="100" />
    </cacheDiagnostics>
    
    noteObservação
    Os despejos de memória para clientes de cache, desativados por padrão, são controlados por essa seção. Para obter mais informações sobre diagnóstico de cache, consulte Diagnóstico e solução de problemas de cache na função (cache do Azure).

O pacote NuGet do Cache na Função também adiciona uma configuração ClientDiagnosticLevel ao ConfigurationSettings da função cliente de cache em ServiceConfiguration.cscfg. O exemplo a seguir é a seção WebRole1 de um arquivo ServiceConfiguration.cscfg com um ClientDiagnosticLevel de 1, que é o ClientDiagnosticLevel padrão.

<Role name="WebRole1">
  <Instances count="1" />
  <ConfigurationSettings>
    <!-- Other settings omitted for clarity... -->
    <Setting name="Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel" value="1" />
  </ConfigurationSettings>
</Role>
noteObservação
Para obter mais informações sobre níveis de diagnóstico de cache, consulte Diagnóstico e solução de problemas de cache na função (cache do Azure).

Além de adicionar a configuração necessária, o pacote NuGet do Cache na Função também adiciona as seguintes referências a assembly.

  • 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

Em um função web, a seguinte referência a assembly também é adicionada.

  • Microsoft.Web.DistributedCache.dll

noteObservação
O Cache na Função e o Microsoft Azure Shared Caching compartilham a mesma API e, embora os nomes de assembly sejam os mesmos, os assemblies são diferentes e estão em locais diferentes. O pacote NuGet do Cache na Função remove as referências a assembly do Shared Caching e adiciona as referências a assembly corretas do Cache na Função. Os assemblies do Cache na Função estão localizados na pasta C:\Program Files\Microsoft SDKs\Azure\.NET SDK\2012-10\ref\Caching.

Depois que seus clientes de função web ASP.NET forem migrados do Microsoft Azure Shared Caching para o Cache na Função, conforme descrito em Configurar os clientes de cache, somente alterações mínimas serão necessárias para armazenar o estado da sessão ASP.NET ou o cache de saída de página em um cache na função. Para habilitar o armazenamento do estado da sessão ASP.NET no cache, adicione a seguinte seção a system.web em web.config.

noteObservação
Se a função web ASP.NET já tiver sido configurada para usar o provedor de estado da sessão para o Cache do Microsoft Azure, essa seção já estará presente.

<sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider">
  <providers>
    <add name="AppFabricCacheSessionStoreProvider" type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache" cacheName="default" useBlobMode="true" dataCacheClientName="default" />
  </providers>
</sessionState>

Atualize cacheName para especificar o cache no cluster de cache que contém o estado da sessão. Use default para especificar o cache padrão.

Para habilitar o armazenamento do cache de saída de página no cache, adicione a seguinte seção a system.web.

noteObservação
Se a função web ASP.NET já tiver sido configurada para usar o provedor de cache de saída para o Cache do Microsoft Azure, essa seção já estará presente.

<caching>
  <outputCache defaultProvider="DistributedCache">
    <providers>
      <add name="DistributedCache" type="Microsoft.Web.DistributedCache.DistributedCacheOutputCacheProvider, Microsoft.Web.DistributedCache" cacheName="default" dataCacheClientName="default" />
    </providers>
  </outputCache>
</caching>

Atualize cacheName para especificar o cache no cluster de cache que contém o estado da sessão. Use default para especificar o cache padrão.

Adicione uma diretiva OutputCache a cada página cuja saída você deseja armazenar no cache.

<%@ OutputCache Duration="60" VaryByParam="*" %>

Neste exemplo, os dados da página armazenados em cache permanecem no cache por 60 segundos e uma versão diferente da página é armazenada em cache para cada combinação de parâmetros. Para obter mais informações sobre as opções disponíveis, consulte Diretiva OutputCache.

Isso foi útil para você?
(1500 caracteres restantes)
Agradecemos os seus comentários
Mostrar:
© 2014 Microsoft