Configurações de aplicativo (Cache do AppFabric 1.1)
Com os recursos de cache do Microsoft AppFabric 1.1 para Windows Server, você pode configurar as configurações de cliente de cache do aplicativo de forma programática, usando um arquivo de configuração de aplicativo ou os dois métodos em locais diferentes do aplicativo. Para obter mais informações sobre cada um desses métodos de configuração e como selecionar cada um, consulte Como configurar um cliente de cache.
Independentemente do método adotado, você está definindo a mesma configuração de cliente de cache. As tabelas neste tópico apresentam as configurações disponíveis ao cliente de cache e mostram como elas estão configuradas no arquivo de configuração de aplicativo baseado em XML e de forma programática, usando o código.
Para obter mais informações sobre como usar essas configurações em seu aplicativo, consulte os exemplos abordados em Configuração de cliente baseado em XML.
Configuração do cliente de cache
Cada cliente de cache tem definições de configuração definidas. Caso esteja usando um arquivo de configuração, eles serão incluídos em uma ou mais seções de dataCachClient
, que podem ser incorporadas a uma seção de dataCacheClients
. Por exemplo:
<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>
No exemplo anterior, há dois clientes de cache definidos no arquivo de configuração: default
e compressedCache
. Para acessar o cache padrão, não é necessário especificar o nome do cliente de cache. Por exemplo:
DataCacheFactory factory = new DataCacheFactory();
Para especificar qualquer outra seção de dataCacheClient
nomeada, é necessário especificar o nome da seção do cliente de cache usando o construtor DataCacheFactoryConfiguration.
DataCacheFactoryConfiguration factoryConfig = new DataCacheFactoryConfiguration("compressedCache");
DataCacheFactory factory = new DataCacheFactory(factoryConfig)
Se não estiver usando um arquivo de configuração de aplicativo, você poderá definir programaticamente todas as configurações com propriedades da classe DataCacheFactoryConfiguration.
Configuração | Local da configuração XML | Local da configuração do código |
---|---|---|
Compactação (booleano) |
O atributo |
A propriedade IsCompressionEnabled da classe DataCacheFactoryConfiguration. |
Tempo limite do cliente (milissegundos) |
O atributo |
A propriedade RequestTimeout da classe DataCacheFactoryConfiguration. |
Tempo limite de abertura de canal (milissegundos) |
O atributo |
A propriedade ChannelOpenTimeout da classe DataCacheFactoryConfigurationc. |
Número máximo de conexões com o servidor |
O atributo |
A propriedade MaxConnectionsToServer da classe DataCacheFactoryConfiguration. |
Configurações de host do cache
Para cada cliente de cache, você deve especificar um ou mais hosts de cache no cluster. Especifique os hosts principais, pois os hosts de cache designados como hosts principais ajudam a gerenciar o cluster. Inicialmente, os hosts principais são os primeiros hosts de cache instalados no cluster. Para obter mais informações sobre hosts principais, consulte Diagrama de arquitetura física de cache do AppFabric (Cache do AppFabric 1.1).
No arquivo de configuração do aplicativo, as configurações de cada host de cache são especificadas em um elemento host, um filho do elemento hosts
. De forma programática, cada host é definido no construtor da classe DataCacheServerEndpoint. Depois que forem instanciados, os objetos DataCacheServerEndPoint são passados para a propriedade Servers da classe DataCacheServerEndpoint.
Configuração | Local da configuração XML | Local da configuração do código |
---|---|---|
Nome do servidor de cache |
O atributo |
A propriedade HostName da classe DataCacheServerEndpoint. |
Número de porta do cache |
O atributo |
A propriedade CachePort da classe DataCacheServerEndpoint. |
Configurações de cache local
As configurações de cache local especificam se o cache local deve estar habilitado, a maneira que os objetos armazenados em cache local devem ser invalidados, o tempo limite do objeto e se as notificações de cache devem ser usadas ou não para validar os objetos armazenados em cache local.
No arquivo de configuração de aplicativo, as configurações de cache local são definidas no elemento localCache
, um filho do elemento dataCacheClient
. Programaticamente, o cache local é configurado com uma instância da classe DataCacheFactoryConfiguration que é passada para o construtor do construtor de classe DataCacheFactory. Para obter mais informações sobre o cache local, consulte Clientes de cache e cache local (Cache do AppFabric v1.1).
Configuração | Local da configuração XML | Local da configuração do código |
---|---|---|
Cache local habilitado |
O atributo |
A propriedade IsEnabled da classe DataCacheLocalCacheProperties. Em seguida, essa propriedade é atribuída à propriedade LocalCacheProperties da classe DataCacheFactoryConfiguration. |
Método de invalidação de cache local |
O atributo |
A propriedade InvalidationPolicy da classe DataCacheLocalCacheProperties. Os valores possíveis são NotificationBased e TimeoutBased. |
Tempo limite de cache local (segundos) |
O atributo |
A propriedade DefaultTimeout da classe DataCacheLocalCacheProperties. |
Intervalo de sondagem (segundos) das notificações de cache específicas |
(opcional) Especificado pelo atributo |
A propriedade PollInterval da classe DataCacheNotificationProperties. Em seguida, essa propriedade é atribuída à propriedade NotificationProperties da classe DataCacheFactoryConfiguration. |
Contagem máxima de objetos armazenados em cache local |
(opcional) Especificado pelo atributo |
A propriedade ObjectCount da classe DataCacheLocalCacheProperties. |
Observação
Para obter melhor desempenho, apenas habilite o cache local para objetos que não são alterados com frequência. O uso de cache local para dados alterados com frequência pode aumentar a chance do cliente trabalhar com objetos obsoletos. Embora você possa reduzir o ttlValue
e fazer com que um processo atualize o cache local com mais frequência, o aumento da carga no cluster poderá superar os benefícios de ter o cache local. Nesses casos de alteração frequente de dados, a melhor opção é desabilitar o cache local e extrair dados diretamente do cluster.
Configurações de Notificação
No arquivo de configuração de aplicativo, as propriedades de notificação são definidas no elemento clientNotification
, um filho do elemento dataCacheClient
. Programaticamente, as propriedades de notificação são configuradas com uma instância da classe DataCacheFactoryConfiguration que é passada para o construtor do construtor de classe DataCacheFactory. Para obter mais informações, consulte Métodos de configuração.
Configuração | Local da configuração XML | Local da configuração do código |
---|---|---|
Intervalo de sondagem (segundos) das notificações de cache específicas |
Especificado pelo atributo |
A propriedade PollInterval da classe DataCacheNotificationProperties. Em seguida, essa propriedade é atribuída à propriedade NotificationProperties da classe DataCacheFactoryConfiguration. |
Comprimento máximo da fila |
O atributo |
A propriedade MaxQueueLength da classe DataCacheNotificationProperties. |
Configurações de segurança
No arquivo de configuração de aplicativo, as propriedades de segurança são definidas no elemento securityProperties
, um filho do elemento dataCacheClient
. Programaticamente, as propriedades de segurança são configuradas com uma instância da classe DataCacheFactoryConfiguration que é passada para o construtor do construtor de classe DataCacheFactory. Para obter mais informações, consulte Métodos de configuração.
Configuração | Local da configuração XML | Local da configuração do código |
---|---|---|
Modo |
O atributo |
A propriedade SecurityMode da classe DataCacheSecurity. Os valores possíveis são None e Transport. O objeto DataCacheSecurity é então atribuído à propriedade SecurityProperties da classe DataCacheFactoryConfiguration. |
Nível de proteção |
O atributo |
A propriedade ProtectionLevel da classe DataCacheSecurity. Os valores possíveis são None, Sign e EncryptAndSign. |
Configurações de Transporte
No arquivo de configuração de aplicativo, as propriedades de transporte são definidas no elemento transportProperties
, um filho do elemento dataCacheClient
. Programaticamente, as propriedades de transporte são configuradas com uma instância da classe DataCacheFactoryConfiguration que é passada para o construtor do construtor de classe DataCacheFactory. Para obter mais informações, consulte Métodos de configuração.
Configuração | Local da configuração XML | Local da configuração do código |
---|---|---|
Tamanho do buffer de conexão (bytes) |
O atributo |
A propriedade ConnectionBufferSize da classe DataCacheTransportProperties. Em seguida, essa propriedade é atribuída à propriedade TransportProperties da classe DataCacheFactoryConfiguration. |
Tamanho máximo do pool de buffers (bytes) |
O atributo |
A propriedade MaxBufferPoolSize da classe DataCacheTransportProperties. |
Tamanho máximo do buffer (bytes) |
O atributo |
A propriedade MaxBufferSize da classe DataCacheTransportProperties. |
Espera máxima de saída (milissegundos) |
O atributo |
A propriedade MaxOutputDelay da classe DataCacheTransportProperties. |
Tempo limite de inicialização do canal (milissegundos) |
O atributo |
A propriedade ChannelInitializationTimeout da classe DataCacheTransportProperties. |
Tempo limite de recebimento (milissegundos) |
O atributo |
A propriedade ReceiveTimeout da classe DataCacheTransportProperties. |
Exemplo de arquivo de configuração de aplicativo
Para que os assemblies do AppFabric leiam os elementos XML no arquivo de configuração de aplicativo, você deve incluir o elemento configSections
como o primeiro elemento no arquivo abaixo da marca configuration
. No elemento configSections
, você deve incluir um elemento section
associado ao elemento dataCacheClient
.
O exemplo a seguir mostra um arquivo de configuração de aplicativo que usa muitas das opções de configuração do cliente de cache discutidas nesse tópico. É importante observar que somente o elemento hosts
é necessário no dataCacheClient
para conectar ao cluster. Os outros elementos filhos têm valores padrão.
<?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>
Consulte também
Conceitos
Como configurar um cliente de cache
Definições de configuração de cluster
Solucionando problemas de cache do AppFabric
Usando o Windows PowerShell para gerenciar os recursos de cache do AppFabric 1.1
Conceitos de cache do AppFabric (Cache do AppFabric 1.1)
Desenvolvendo um cliente de cache
2012-03-05