Configuração de cache
O arquivo de configuração de cache contém informações sobre todos os caches/clusters registrados. Módulos que precisam ler as configurações primeiro tentam encontrar config.ncconf na pasta do aplicativo, ou seja, ao lado do web.config. Se config.ncconf não for encontrado na pasta do aplicativo, ele lê a configuração da pasta de instalação.
Note
Este arquivo é instalado com NCache e está localizado na %NCHOME%\config no Windows e NCache Instalar diretório/config no Linux.
Sintaxe e tags de configuração de cache
A config.ncconf arquivo é explicado abaixo:
<!--
The configuration file (config.ncconf) contains the details of all the registered caches. All cache configurations are enclosed in the <configuration></configuration> tag. Whereas each cache detail is enclosed in <cache-config></cache-config>.
-->
<cache-config cache-name="demoCache" alias="" store-type="Distributed-Cache" config-id="6a49d9ce-9aa7-4312-ada6-4fec37a6e729" config-version="1">
<cache-settings inproc="False" last-modified="" auto-start="False" data-format="Serialized" serialization="Binary">
...
</cache-settings>
</cache-config>
cache-name
: o identificador do cache. O cache será conhecido pelo nome que você especificar aqui. Este é o mesmo nome que você especificou ao inicializar o cache.
store-type
: especifica a finalidade para a qual esse cache será usado. Pode ter um dos seguintes valores possíveis:
Distributed-Cache
Distributed-Cache-Persistence
Pub/Sub-Messaging
Distributed-Lucene
inproc
: determina se o cache será executado como InProc (no seu processo de aplicação) ou OutProc (no NCache Processo de serviço). Se definido como "False", o cache será executado como OutProc e se definido como "True", o cache será executado como InProc.
config-version
: Usado para determinar se a configuração foi modificada ou não.
config-id
: gera automaticamente um ID exclusivo para a configuração modificada.
last-modified
: Contém informações relacionadas à última modificação na configuração do cache.
auto-start
: ativa o início automático do cache na inicialização do cache. (NCache Enterprise só)
data-format
: O formato com que os dados são armazenados em cache, pode ser Serializado ou Objeto.
serialization
: o formato de serialização do cache. Pode ser JSON ou Binário.
<logging enable-logs="True" trace-errors="True" trace-notices="False" trace-warnings="False" trace-debug="False" log-path=""/>
NCache mantém um arquivo de log para gravar rastreios para fins de informação e depuração. Usando essas tags, o usuário pode ativar ou desativar os vários rastreamentos. Por padrão, apenas o rastreamento “Erro” está habilitado, o restante dos rastreamentos está desabilitado. O rastreamento de erros não afeta o desempenho do cache, mas sim outros rastreamentos. Recomendamos não habilitá-los em um ambiente de produção, pois eles afetam o desempenho do NCache.
log-path
: Por padrão, os arquivos de log para cada cache são criados em %NCHOME%\arquivos de log no Windows e NCache Instale dir/arquivos de log em Linux. No entanto, você pode especificar um caminho personalizado se quiser salvar os logs em outro lugar.
<performance-counters enable-counters="True" snmp-port="0"/>
Se este atributo estiver definido como True, NCache atualizará os contadores PerfMon publicados. Se definido como falso, NCache não atualizará nenhum dos contadores PerfMon publicados.
<replication-strategy synchronous="False"/>
No caso do Partition-Replica, você encontrará esta tag na configuração do cache. A estratégia de replicação define como os dados são replicados para o nó de backup.
synchronous
: Este atributo pode ser definido como Verdadeiro/Falso. Se definido como False, a operação de dados será replicada de forma assíncrona no nó de backup. Se definido como True, a operação de dados será replicada de forma síncrona no nó de backup.
<pipelining enabled="False" batch-interval="250usec"/>
Para habilitar o pipelining, defina a tag pipelining enabled como True e insira o tempo em microssegundos (µs) para o intervalo do lote. O valor padrão é 250 µs e os valores mínimo e máximo são 50 µs e 5000 µs respectivamente.
<compression enable-compression="False" threshold="100kb"/>
Esta tag XML especifica se os itens maiores que o limite especificado devem ser compactados/descompactados no lado do cliente.
enable-compression
: para ativar a compactação, defina este atributo como True, caso contrário, defina-o como False.
threshold
: Itens maiores que o valor especificado no atributo limite só serão compactados/descompactados no lado do cliente se a compactação estiver habilitada.
Conforme o exemplo da tag de compactação mencionado acima, apenas itens com tamanho superior a 100kb serão compactados/descompactados no lado do cliente.
<client-activity-notification enabled="False" retention-period="5sec"/>
Enabled
: habilite esta opção para permitir que os clientes recebam notificações se outro cliente se conectar ou desconectar.
retention-period
: O período de retenção é o intervalo de tempo após o qual um cliente desconectado é considerado desconectado.
<cache-notifications item-remove="False" item-add="False" item-update="False"/>
notifications
: tag XML especifica o evento registrado com o cache.
Item-add
: Este atributo pode ser definido como Verdadeiro ou Falso. Se definido como True, notificará quando um item for adicionado ao cache. Da mesma forma, se definido como False, nenhuma notificação será disparada se o item for adicionado ao cache.
Item-remove
: Este atributo pode ser definido como Verdadeiro ou Falso. Se definido como True, notificará quando um item for removido do cache. Da mesma forma, se definido como False, nenhuma notificação será disparada se o item for removido do cache.
Item-update
: Este atributo pode ser definido como Verdadeiro ou Falso. Se definido como True, notificará quando um item for atualizado no cache. Da mesma forma, se definido como False, nenhuma notificação será disparada se o item for atualizado no cache.
<cleanup interval="15sec"/>
cleanup
: tag XML especifica o intervalo periódico após o qual o item para expiração será verificado:
Interval:
Se definido como “15 segundos”, isso significa que a verificação de expiração será realizada a cada 15 segundos.
<storage type="heap" cache-size="1024mb"/>
storage
: a tag XML especifica os detalhes relacionados ao armazenamento do cache:
Type
: Este atributo só pode ser definido como "heap" como atualmente NCache suporta apenas armazenamento baseado em heap.
Cache-size
: este atributo especifica o limite superior do tamanho do cache em MB.
<eviction-policy enabled-eviction="True" default-priority="normal" policy="lru" eviction-ratio="5%"/>
Esta tag XML especifica se o despejo deve ser realizado ou não. Se a remoção estiver habilitada, o cache removerá o item existente para acomodar novos. Os itens existentes serão removidos com base na estratégia de despejo.
Enabled-eviction
: para ativar o despejo, defina este atributo como True, caso contrário, defina-o como False.
Policy
: este atributo especifica a política de despejo a ser usada. A política de despejo pode ser uma das seguintes:
- LRU (menos usado recentemente) (NCache Enterprise só)
- LFU (menos usado) (NCache Enterprise só)
- Baseado em prioridade
Default-priority
: especifica a prioridade padrão associada a um item se nenhuma prioridade for especificada para esse item. Este atributo pode ser definido da seguinte forma:
- Alta
- Acima do normal
- Normal
- Abaixo do normal
- Baixo
Isso só é aplicável em caso de despejo com base em prioridade.
Eviction-ratio
: especifica a porcentagem de dados que deve ser removida quando a remoção for executada.
<expiration-policy enabled="True">
<absolute-expiration longer-enabled="False" longer-value="0" default-enabled="False" default-value="0"/>
<sliding-expiration longer-enabled="False" longer-value="0" default-enabled="False" default-value="0"/>
</expiration-policy>
enabled
: Habilita a política de expiração.
longer-enabled
: especifica se a expiração mais longa está habilitada. Se for True, o valor deverá ser fornecido.
longer-value
: se habilitado por mais tempo for True, esse valor será usado para expiração.
default-enabled
: especifica se a expiração padrão está habilitada. Se for True, o valor também deverá ser fornecido.
default-value
: se habilitado por padrão for True, esse valor será usado para expiração.
<security>
<user id="john_smith" dn="CN=John Smith,OU=admin,DC=yourdomain,DC=org"/>
<user id="david_watson" dn="CN=David Watson,OU=admin,DC=yourdomain,DC=org"/>
<group id="DEV" dn="CN=DEV,OU=admin,DC=yourdomain,DC=org"/>
</security>
user
: este atributo especifica credenciais de usuário administrador.
id
: especifica o ID do usuário.dn
: especifica o nome distinto do usuário.
group
: este atributo especifica os detalhes do grupo.
id
: especifica o nome do grupo.dn
: especifica o nome distinto do grupo.
<cache-topology topology="partition-replica">
<cluster-settings operation-timeout="60sec" stats-repl-interval="2sec" use-heart-beat="True">
...
</cluster-settings>
</cache-topology>
Esta tag XML é usada para especificar os detalhes de comunicação no cluster, ela também contém uma subtag, canal, que define ainda mais os detalhes de comunicação do cluster:
Observe que esta tag não estará presente no cache local.
topology
: especifica qual topologia o cluster segue, pode ser uma das seguintes, conforme fornecido por NCache:
- Topologia Partição-Réplica (NCache Enterprise só)
- Topologia replicada
- Topologia Particionada
- Topologia de espelho
operation-timeout
: determina o tempo limite de uma conexão entre os servidores se um servidor no cluster não responder.
stats-repl-interval
: (Intervalo de replicação estatística) o intervalo fornecido ao cluster no qual sincronizar suas informações entre seus servidores.
use-heart-beat
: HeartBeat é usado para monitorar a conectividade entre nós.
<data-persistence store-name="demoPersistenceCache_db">
<provider-settings provider-type="ncache-persistence" connection-string="lxxKK7Xqh0Tpm3rPvPOmYcCRYyeUV8f8NswyNRFum/uA0HXudbm6vWkXcnJ33GE9"/>
<operation-setting persistence-interval="1000ms" persistence-retries="3" persistence-interval-longer="60sec"/>
</data-persistence>
Esta etiqueta data-persistence
é usado para determinar as configurações do seu Cache Distribuído com Persistência. Ele só aparece se você tiver definido seu store-type
as distributed-cache-persistence
. Possui os seguintes parâmetros:
provider-type
: Este parâmetro indica o tipo de provedor de persistência que você está usando em seu distributed-cache-persistence
. Tem valor ncache-persistence
.
connection-string
: Uma string de conexão válida que determina a conexão com o provider-type
Especificadas.
persistence-interval
: este é o intervalo após o qual as operações presentes na fila de persistência são aplicadas ao armazenamento de persistência.
persistence-retries
: este é o número de novas tentativas em caso de falhas de lote de persistência após as quais o intervalo de persistência é alterado para intervalo de persistência mais longo.
persistence-interval-longer
: quando várias falhas consecutivas atingem novas tentativas de persistência, o intervalo é então definido como intervalo de persistência mais longo.
<caching-modules>
<module name="lucene-net-4.8" enable="True">
<parameters name="IndexPath" value="C:\ProgramData\ncache\lucene-index\lucene"/>
</module>
</caching-modules>
<caching-module>
: Esta tag XML especifica todos os módulos e seus respectivos parâmetros registrados em um cache. Ele só aparece se você definiu seu store-type
as distributed-lucene
.
Sob o <module>
etiqueta, você tem:
name
: especifica o nome do módulo. O módulo será identificado pelo nome que você fornecer aqui. Este nome precisa ser exclusivo.
enable
: ativa/desativa o módulo fornecido.
Sob o <parameters>
etiqueta, você tem:
name
: especifica a lista de parâmetros adicionados a um módulo.
value
: especifica o valor fornecido para o parâmetro adicionado.
<cluster-connection-settings cluster-port="7806" port-range="1" connection-retries="2" connection-retry-interval="2secs" join_retry_count="24" join_retry_timeout="5"/>
<cluster-connection-settings>
: esta tag XML especifica os detalhes da conectividade de porta e outras opções de comunicação entre os servidores do cluster:
cluster-port
: A conexão é canalizada através de uma porta TCP; este valor define a porta que ocupa.
port-range
: Ao inicializar, se a porta fornecida for ocupada por alguma outra aplicação então ela tentará estabelecer sua conexão na porta incrementada em 1, para isso é fornecido o intervalo, ou seja, até qual intervalo ele deve procurar por uma porta TCP disponível.
connection-retries
: Se a conexão entre o(s) nó(s) falhar, isso define quantas tentativas devem ser feitas para considerar uma falha permanente.
connection-retry-interval
: O intervalo entre novas tentativas de conexão é definido neste valor.
<alerts>
<email-notification email-notification-enabled="False" sender="" smtp-server="" smtp-port="0" ssl="False" authentication="False" sender-login="" sender-password=""/>
<alerts-types cache-stop="False" cache-start="False" node-left="False" node-joined="False" state-transfer-started="False" state-transfer-stop="False" state-transfer-error="False" cache-size="False"/>
</alerts>
Se forem necessárias notificações de eventos por e-mail (somente recurso Enterprise), as informações para sua configuração serão configuradas aqui:
Email-notification
: Contém todas as informações relacionadas ao endereço de e-mail.
Email-notification-enabled
: ativa a notificação por e-mail.
Sender
: especifique a conta de e-mail da qual as notificações por e-mail serão enviadas.
Smtp-server
: especifique o gateway para enviar notificações por email.
Smtp-port
: o número da porta usada para encaminhar e-mails.
SSL
: Secure Socket Layer para ativar a segurança SSL.
Authentication
: Se alguma autenticação for necessária, isso deverá ser Verdadeiro.
Sender-login
: se a autenticação for necessária, especifique o nome de login.
Sender-password
: A senha de autenticação é inserida aqui.
Alert-Types
: especifica em qual evento um email automatizado será gerado.
Cache-stop
: Se o cache for interrompido a qualquer momento, uma notificação por e-mail será gerada.
Cache-start
: No início do cache, uma notificação por e-mail é gerada.
Node-left
: quando um nó de servidor sai do cluster ou se um nó de servidor estiver inacessível por qualquer motivo, uma notificação por e-mail será enviada se esta opção estiver habilitada.
Node-joined
: Ao ingressar em qualquer nó do servidor, uma notificação por e-mail é gerada.
State-Transfer-started
: para notificar sempre que ocorrer uma transferência de estado que ocorre quando o balanceamento de carga é executado, uma notificação por e-mail é gerada.
Cache-size
: sempre que o tamanho do cache for alterado usando Hot Apply, uma notificação por e-mail será gerada.
<sql-dependency use-default="False"/>
Essa tag XML especifica o enfileiramento e a arquitetura de notificação de SQL de serviço. (Somente empresa)
Use-default
: O atributo pode ser definido como Verdadeiro/Falso. Se o atributo estiver definido como True, o serviço e a fila de Dependência SQL padrão serão criados em tempo de execução. Se o atributo for definido como False, o serviço e a fila de Dependência SQL personalizados serão criados e usados por NCache.
Veja também
Configurações do lado do cliente
Configuração da ponte
Configuração de Segurança