Parâmetros de configuração de cliente de cache para o serviço de cache gerenciado do Azure

Importante

A Microsoft recomenda que todos os novos desenvolvimentos usem o Cache Redis do Azure. Para obter documentação e diretrizes atuais sobre como escolher uma oferta do Cache do Azure, confira qual oferta do Cache do Azure é certa para mim?

Este tópico descreve os requisitos para dar suporte a Serviço de Cache Gerenciado em um arquivo de configuração .NET Framework web.config ou app.config. São descritas também as opções de configuração disponíveis para clientes de cache.

Dica

Quando você usa o pacote NuGet para Serviço de Cache Gerenciado, o pacote modifica automaticamente o arquivo de configuração. No entanto, você pode usar este tópico para personalizar ainda mais as configurações de cliente de cache que NuGet insere. Para obter mais informações sobre o pacote Caching NuGet, consulte Configurar um cliente de cache usando o pacote Caching NuGet.

Este tópico abrange as seções a seguir.

  • <configSections>

    • <dataCacheClients>

      • <dataCacheClient>

        • <Autodiscover>

        • <localCache>

        • <clientNotification>

        • <serializationProperties>

        • <securityProperties>

      • <cacheDiagnostics>

        • <crashDump>

Exemplo de configuração de cliente de cache

O exemplo a seguir mostra as seções de um arquivo web.config ou app.config relevantes para Serviço de Cache Gerenciado. Neste exemplo, o cliente de cache default está acessando o cache hospedado em mycache.cache.windows.net e o cache local está habilitado.

<configuration>
  <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>
  <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="mycache.cache.windows.net" />
      <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="MyAuthorizationKey" />
      </securityProperties>
    </dataCacheClient>
  </dataCacheClients>
    <cacheDiagnostics>
    <crashDump dumpLevel="Off" dumpStorageQuotaInMB="100" />
  </cacheDiagnostics>
</configuration>

configSections

Os dois elementos de seção nomeados a seguir devem ser adicionados à lista de seções no elemento configSections .

Nome Descrição

dataCacheClients

Define o elemento dataCacheClients do arquivo de configuração. Essa seção especifica os parâmetros de todas as configurações de cliente de cache.

cacheDiagnostics

Define o elemento cacheDiagnostics do arquivo de configuração. Esta seção configura o diagnóstico específico para Serviço de Cache Gerenciado.

O exemplo a seguir mostra como definir essas seções.

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

dataCacheClients

Cada elemento dataCacheClients contém um ou mais elementos dataCacheClient nomeados. O elemento dataCacheClients não tem nenhum atributo. A capacidade de ter várias seções de configuração de cliente de cache permite que os aplicativos usem diferentes configurações com diferentes tipos de dados em cache.

dataCacheClient

Cada elemento dataCacheClients contém um ou mais elementos dataCacheClient nomeados. O código do aplicativo carrega as configurações de um cliente de cache fazendo referência ao nome da seção dataCacheClient associada.

O elemento dataCacheClients não tem nenhum atributo. Mas os elementos dataCacheClient filho têm vários atributos disponíveis. Esses atributos são descritos na tabela a seguir.

Atributo Descrição

Nome

O nome da configuração de cliente de cache.

isCompressionEnabled

Habilita ou desabilita a compactação. Os valores possíveis incluem true ou false. O padrão é false (desabilitado).

useConnectionPool

Habilita ou desabilita o pool de conexões. Os valores possíveis incluem true ou false. O padrão é true (habilitado).

maxConnectionsToServer

Quando useConnectionPool é definido como true, esse atributo especifica o número de conexões no pool de conexões para essa configuração de cliente de cache. Quando useConnectionPool é definido como false, esse atributo especifica o número de conexões a serem usadas para cada objeto DataCacheFactory no código.

As seções a seguir descrevem os elementos filho disponíveis em cada elemento dataCacheClient .

autoDiscover

O elemento AutoDiscover ajuda os clientes de cache a se conectarem automaticamente a um cache de destino.

A tabela a seguir descreve os atributos disponíveis para o elemento autoDiscover .

Atributo Descrição

Isenabled

Defina ou truefalse habilite ou desabilite a conexão automática local com a função que hospeda Serviço de Cache Gerenciado.

identifier

Para Serviço de Cache Gerenciado, é o nome do ponto de extremidade do cache.

Para In-Role Cache, é o nome da função na mesma implantação de serviço de nuvem que hospeda In-Role Cache.

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

localCache

O elemento localCache controla o uso do cache local. Por padrão, o cache local não está habilitado. Quando é habilitado, os itens recuperados do cache são armazenadas localmente na memória da máquina cliente. Isso melhora o desempenho de solicitações Get subsequentes, mas pode resultar em inconsistência de dados entre a versão armazenada no cache local e o item real no cache. Para obter mais informações, consulte o Cache Local para Serviço de Cache Gerenciado do Azure.

A tabela a seguir descreve os atributos disponíveis para o elemento localCache .

Atributo Descrição

Isenabled

Defina como true ou false para habilitar ou desabilitar o cache local.

Sincronização

Determina como o cache local é invalidado. Os valores possíveis são TimeoutBased e NotificationBased.

objectCount

O número máximo de objetos a serem armazenados no cache local. O padrão é 10000.

ttlValue

O número de segundos de permanência dos objetos no cache local. O padrão é 300 segundos.

Observação

As ofertas de cache Standard e Premium oferecem suporte a notificações e os caches nomeados nessas ofertas devem ser configurados para habilitar as notificações. Para obter mais informações, consulte Notificações para Serviço de Cache Gerenciado do Azure.

<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />

clientNotification

A tabela a seguir descreve os atributos disponíveis para o elemento clientNotification . Esse elemento é responsável por controlar o comportamento de notificação para o cliente de cache.

Atributo Descrição

Pollinterval

O número de segundos entre tentativas de consulta. A consulta é usada para verificar se há notificações no cache. O padrão é 300 segundos.

maxQueueLength

O número máximo de notificações em fila para esse cliente de cache entre tentativas de consulta. O padrão é 10000 notificações.

<clientNotification pollInterval="60" maxQueueLength="10000"/>

serializationProperties

A tabela a seguir descreve os atributos disponíveis para o elemento serializationProperties . Esse elemento oferece suporte à escolha entre serialização interna ou personalizada para itens em cache. Para obter mais informações, consulte Serialização para Serviço de Cache Gerenciado do Azure.

Atributo Descrição

serializador

Determina o tipo de serialização para itens em cache. Os valores possíveis são NetDataContractSerializer, BinaryFormatter e CustomSerializer. O padrão é NetDataContractSerializer.

securityProperties

A tabela a seguir descreve os atributos disponíveis para o elemento securityProperties .

Atributo Descrição

mode

Os valores possíveis incluem None, Transport e Message. Só Message há suporte com Serviço de Cache Gerenciado. As outras duas configurações estão relacionadas ao Microsoft AppFabric 1.1 para Windows Server.

sslEnabled

Os valores possíveis são true e false. Essa configuração é usada para determinar se a comunicação entre o cache e os clientes de cache é criptografada ou não. O padrão é false. Para obter mais informações, consulte Como proteger as comunicações entre clientes de cache e o Cache.

O elemento securityProperties tem um elemento filho, messageSecurity. A tabela a seguir descreve os atributos disponíveis para o elemento messageSecurity .

Atributo Descrição

authorizationInfo

A chave de acesso do cache, que pode ser obtida no painel de controle de cache no . Se não for configurada corretamente, o cliente de cache não será capaz de estabelecer comunicação com o cache.

<securityProperties mode="Message" sslEnabled="false">
  <messageSecurity authorizationInfo="iz8zOmJ0dJBzzzzxa8JxdGJkb281bzxudGF0az9udGxzdGluZi111z8oZS5Ji28lP38jb250Pm9sLmludDMud2luZG93Pi1pb8Qubmx0L1dSQxB2MP45LiZxd25lPii0eDJJZQA5SlZQQUQ2xzIizk8iazlES1P08X8zOFIxZjdzZxp0i3lFQ2FFPSZodJRzOi8xS8JxdGJEb281bzxudGF0az9uxGxzdGluZi5jiz8oZS5pb8QzL8dpbmRxd3MQaz50Lm5ldA==" />
</securityProperties>

cacheDiagnostics

Esta seção configura algumas das configurações de diagnóstico para Serviço de Cache Gerenciado.

Aviso

Na versão Serviço de Cache Gerenciado, o cacheDiagnostics e as seções relacionadas descritas neste tópico se aplicam somente a clientes de cache de serviço de nuvem baseados em função. Se o seu cliente de cache não for um serviço de nuvem, estas seções não serão adicionados pelo pacote NuGet de cache. Para obter mais informações, consulte Sobre ClientDiagnosticLevel para Serviço de Cache Gerenciado do Azure.

As seções a seguir descrevem os elementos filho disponíveis em cada elemento cacheDiagnostics .

crashDump

O elemento crashDump controla o tipo de despejos de falha coletados para este aplicativo. Serviço de Cache Gerenciado despejos de falhas são projetados principalmente para diagnosticar problemas com computadores de cache. Por esse motivo, os arquivos de configuração de cliente devem desativar a geração de despejos de memória. Isso pode ser feito definindo o atributo dumpLevel como Off.

Quando os despejos de memória são habilitados, o armazenamento local de cache e o armazenamento de diagnóstico devem ser ajustados em ServiceDefinition.csdef de modo que o tamanho sempre seja maior que a soma da cota de armazenamento de despejo de memória e a cota de armazenamento de log configurada em CacheSettings.xml (o padrão é 1000 MB).

A tabela a seguir descreve os atributos disponíveis para o elemento crashDump .

Atributo Descrição

dumpLevel

Os valores possíveis incluem Off, Mini e Full.

dumpStorageQuotaInMB

O limite máximo de tamanho do despejo de memória.

scheduledTransferPeriodInMinutes

O número de minutos entre transferências de despejos de memória para o armazenamento de diagnóstico.

<crashDump dumpLevel="Off" dumpStorageQuotaInMB="100" scheduledTransferPeriodInMinutes="5" />