Parâmetros de configuração de cliente de cache na função (Web.config)

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 ao Cache In-Role 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. As configurações descritas neste tópico são exigidas somente por clientes de cache; elas não são necessárias para funções que hospedam In-Role Cache.

Dica

Quando você usa o pacote NuGet para In-Role Cache, o pacote modifica automaticamente o arquivo de configuração. No entanto, você pode usar este tópico para configurar clientes do Cache In-Role sem o uso do NutGet. Estas informações também podem ser usadas para personalização adicional das configurações de cliente de cache inseridas pelo NuGet.

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

  • <configSections>

  • <dataCacheClients>

    • <dataCacheClient>

      • <Autodiscover>

      • <localCache>

      • <clientNotification>

      • <serializationProperties>

  • <cacheDiagnostics>

    • <crashDump>

Exemplo de configuração de cliente de cache

O exemplo a seguir mostra as seções de um arquivo de web.config ou app.config relevantes para In-Role Cache. Nesse exemplo, o cliente de cache do default está acessando os caches hospedados pela função CacheWorkerRole1 e o cache local está habilitado.

<?xml version="1.0" encoding="utf-8"?>
<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">
      <autoDiscover isEnabled="true" identifier="CacheWorkerRole1" />
      <localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />
    </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.

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 cluster de cache de destino. Este cluster de cache deve ser hospedado por uma função na mesma implantação do serviço de nuvem.

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 In-Role Cache.

identifier

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

<autoDiscover isEnabled="true" identifier="CacheWorkerRole1" />

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 cluster de 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 cluster de cache. Para obter mais informações, consulte Cache Local no Cache In-Role 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 notificações são um recurso de Cache In-Role com suporte apenas em caches hospedados em funções do Azure. Esses caches devem ser configurados para habilitar as notificações.

<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 cluster de 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 no Cache de In-Role 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.

cacheDiagnostics

Esta seção configura algumas das configurações de diagnóstico para o Cache In-Role. Para obter mais informações sobre diagnóstico, consulte solução de problemas e diagnóstico do Cache do Azure In-Role.

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. In-Role despejos de falha do Cache são projetados principalmente para diagnosticar problemas com computadores de cluster 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

A quantidade máxima de armazenamento para alocar para despejos 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" />