Configurazione cache
Il file di configurazione della cache contiene informazioni relative a tutte le cache/cluster registrati. I moduli che devono leggere prima le configurazioni provano a trovarli config.ncconf nella cartella dell'applicazione, ovvero accanto al file web.config. Se config.ncconf non si trova nella cartella dell'applicazione, quindi legge la configurazione dalla cartella di installazione.
Note:
Questo file viene installato con NCache e si trova a %NCOME%\config in Windows e NCache Installa dir/config in Linux.
Sintassi e tag di configurazione della cache
Il config.ncconf file è spiegato di seguito:
<!--
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
: l'identificatore della cache. La cache sarà conosciuta con il nome specificato qui. Questo è lo stesso nome specificato durante l'inizializzazione della cache.
store-type
: specifica lo scopo per cui verrà utilizzata questa cache. Può avere uno dei seguenti valori possibili:
Distributed-Cache
Distributed-Cache-Persistence
Pub/Sub-Messaging
Distributed-Lucene
inproc
: determina se la cache verrà eseguita come InProc (nel processo dell'applicazione) o OutProc (nel file NCache processo di servizio). Se impostato su "False", la cache verrà eseguita come OutProc e se impostata su "True", la cache verrà eseguita come InProc.
config-version
: Utilizzato per determinare se la configurazione viene modificata o meno.
config-id
: genera automaticamente un ID univoco per la configurazione modificata.
last-modified
: contiene informazioni relative all'ultima modifica nella configurazione della cache.
auto-start
: abilita l'avvio automatico della cache all'avvio della cache. (NCache Enterprise esclusivamente)
data-format
: Il formato con cui i dati vengono archiviati nella cache, può essere Serializzato o Oggetto.
serialization
: il formato di serializzazione per la cache. Può essere JSON o binario.
<logging enable-logs="True" trace-errors="True" trace-notices="False" trace-warnings="False" trace-debug="False" log-path=""/>
NCache mantiene un file di registro per scrivere tracce a scopo informativo e di debug. Utilizzando questi tag l'utente può abilitare o disabilitare le varie tracce. Per impostazione predefinita, è abilitata solo la traccia "Errore", le restanti tracce sono disabilitate. La traccia degli errori non influisce sulle prestazioni della cache ma su altre tracce. Si consiglia di non abilitarli in un ambiente di produzione poiché influiscono sulle prestazioni di NCache.
log-path
: per impostazione predefinita, i file di registro per ciascuna cache vengono creati in %NCHOME%\file di registro in Windows e NCache Installa i file dir/log in Linux. Tuttavia, puoi specificare un percorso personalizzato se desideri salvare i registri altrove.
<performance-counters enable-counters="True" snmp-port="0"/>
Se questo attributo è impostato su True, NCache aggiornerà i contatori PerfMon pubblicati. Se impostato su False, NCache non aggiornerà nessuno dei contatori PerfMon pubblicati.
<replication-strategy synchronous="False"/>
Nel caso di Partition-Replica, troverai questo tag nella configurazione della cache. La strategia di replica definisce il modo in cui i dati vengono replicati nel nodo di backup.
synchronous
: questo attributo può essere impostato su True/False. Se impostato su False, l'operazione sui dati verrà replicata in modo asincrono sul nodo di backup. Se impostato su True, l'operazione sui dati verrà replicata in modo sincrono sul nodo di backup.
<pipelining enabled="False" batch-interval="250usec"/>
Per abilitare il pipeline, impostare il tag di abilitazione pipeline su True e immettere il tempo in microsecondi (μs) per l'intervallo batch. Il valore predefinito è 250 µs e i valori minimo e massimo sono rispettivamente 50 µs e 5000 µs.
<compression enable-compression="False" threshold="100kb"/>
Questo tag XML specifica se gli elementi superiori alla soglia specificata devono essere compressi/decompressi sul lato client.
enable-compression
: per abilitare la compressione, imposta questo attributo su True, altrimenti impostalo su False.
threshold
: gli elementi maggiori del valore specificato nell'attributo soglia verranno compressi/decompressi sul lato client solo se la compressione è abilitata.
Come nell'esempio del tag di compressione sopra menzionato, solo gli elementi di dimensione superiore a 100 KB verranno compressi/decompressi sul lato client.
<client-activity-notification enabled="False" retention-period="5sec"/>
Enabled
: Abilita questa opzione per consentire ai client di ricevere notifiche se un altro client si connette o si disconnette.
retention-period
: Il periodo di conservazione è l'intervallo di tempo dopo il quale un client disconnesso viene considerato disconnesso.
<cache-notifications item-remove="False" item-add="False" item-update="False"/>
notifications
: il tag XML specifica l'evento registrato con la cache.
Item-add
: questo attributo può essere impostato su True o False. Se impostato su True, avviserà quando un elemento viene aggiunto alla cache. Allo stesso modo, se impostato su False, non verrà generata alcuna notifica se l'elemento viene aggiunto alla cache.
Item-remove
: questo attributo può essere impostato su True o False. Se impostato su True, avviserà quando un elemento viene rimosso dalla cache. Allo stesso modo, se impostato su False, non verrà generata alcuna notifica se l'elemento viene rimosso dalla cache.
Item-update
: questo attributo può essere impostato su True o False. Se impostato su True, avviserà quando un elemento viene aggiornato nella cache. Allo stesso modo, se impostato su False, non verrà generata alcuna notifica se l'elemento viene aggiornato nella cache.
<cleanup interval="15sec"/>
cleanup
: Il tag XML specifica l'intervallo periodico dopo il quale verrà controllata la scadenza dell'articolo:
Interval:
Se impostato su "15 secondi" significa che il controllo della scadenza verrà eseguito ogni 15 secondi.
<storage type="heap" cache-size="1024mb"/>
storage
: il tag XML specifica i dettagli relativi all'archiviazione per la cache:
Type
: questo attributo può essere impostato solo su "heap" come attualmente NCache supporta solo l'archiviazione basata su heap.
Cache-size
: questo attributo specifica il limite superiore della dimensione della cache in MB.
<eviction-policy enabled-eviction="True" default-priority="normal" policy="lru" eviction-ratio="5%"/>
Questo tag XML specifica se eseguire o meno lo sfratto. Se l'eliminazione è abilitata, la cache rimuoverà l'elemento esistente per accoglierne di nuovi. Gli elementi in uscita verranno rimossi in base alla strategia di sfratto.
Enabled-eviction
: per abilitare lo sfratto imposta questo attributo su True, altrimenti impostalo su False.
Policy
: questo attributo specifica la politica di sfratto da utilizzare. La politica di sfratto può essere una delle seguenti:
- LRU (utilizzato meno recentemente) (NCache Enterprise esclusivamente)
- LFU (utilizzato meno frequentemente) (NCache Enterprise esclusivamente)
- Basato sulla priorità
Default-priority
: specifica la priorità predefinita associata a un elemento se per tale elemento non è specificata alcuna priorità. Questo attributo può essere impostato come segue:
- Alta
- Superiore al normale
- Normale
- Al di sotto della norma
- Basso
Ciò è applicabile solo in caso di sfratto prioritario.
Eviction-ratio
: specifica la percentuale di dati da eliminare quando viene eseguita l'eliminazione.
<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
: Abilita il criterio di scadenza.
longer-enabled
: specifica se è abilitata la scadenza più lunga. Se True, è necessario fornire il valore.
longer-value
: Se abilitato per più tempo è True, questo valore verrà utilizzato per la scadenza.
default-enabled
: specifica se la scadenza predefinita è abilitata. Se True, deve essere fornito anche il valore.
default-value
: Se l'abilitazione predefinita è True, questo valore verrà utilizzato per la scadenza.
<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
: questo attributo specifica le credenziali dell'utente amministratore.
id
: specifica l'ID dell'utente.dn
: specifica il nome distinto dell'utente.
group
: questo attributo specifica i dettagli del gruppo.
id
: specifica il nome del gruppo.dn
: specifica il nome distinto del gruppo.
<cache-topology topology="partition-replica">
<cluster-settings operation-timeout="60sec" stats-repl-interval="2sec" use-heart-beat="True">
...
</cluster-settings>
</cache-topology>
Questo tag XML viene utilizzato per specificare i dettagli di comunicazione nel cluster, contiene anche un sottotag, canale, che definisce ulteriormente i dettagli di comunicazione del cluster:
Tieni presente che questo tag non sarà presente nella cache locale.
topology
: specifica la topologia seguita dal cluster. Può essere una delle seguenti, come fornito da NCache:
- Topologia di replica delle partizioni (NCache Enterprise esclusivamente)
- Topologia replicata
- Topologia partizionata
- Topologia speculare
operation-timeout
: determina il timeout di una connessione tra i server se un server nel cluster non riesce a rispondere.
stats-repl-interval
: (Intervallo di replica delle statistiche) l'intervallo fornito al cluster per sincronizzare le proprie informazioni tra i suoi server.
use-heart-beat
: HeartBeat viene utilizzato per monitorare la connettività tra i nodi.
<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>
Questa etichetta data-persistence
viene utilizzato per determinare le impostazioni della cache distribuita con persistenza. Appare solo se hai impostato il tuo store-type
as distributed-cache-persistence
. Ha i seguenti parametri:
provider-type
: questo parametro indica il tipo di provider di persistenza che stai utilizzando nel tuo distributed-cache-persistence
. Ha valore ncache-persistence
.
connection-string
: una stringa di connessione valida che determina la connessione con il provider-type
specificato.
persistence-interval
: Questo è l'intervallo dopo il quale le operazioni presenti nella coda di persistenza vengono applicate all'archivio di persistenza.
persistence-retries
: questo è il numero di tentativi in caso di errori del batch di persistenza dopo il quale l'intervallo di persistenza viene spostato su un intervallo di persistenza più lungo.
persistence-interval-longer
: Quando diversi errori consecutivi raggiungono tentativi di persistenza, l'intervallo viene impostato su intervallo di persistenza più lungo.
<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>
: Questo tag XML specifica tutti i moduli e i rispettivi parametri registrati in una cache. Appare solo se hai impostato il tuo store-type
as distributed-lucene
.
Sotto il <module>
tag, hai:
name
: Specifica il nome del modulo. Il modulo verrà identificato con il nome fornito qui. Questo nome deve essere univoco.
enable
: Abilita/disabilita il modulo fornito.
Sotto il <parameters>
tag, hai:
name
: specifica l'elenco dei parametri aggiunti a un modulo.
value
: specifica il valore fornito per il parametro aggiunto.
<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>
: questo tag XML specifica i dettagli della connettività della porta e altre opzioni di comunicazione tra i server del cluster:
cluster-port
: La connessione viene canalizzata tramite una porta TCP; questo valore definisce la porta che occupa.
port-range
: Durante l'inizializzazione, se la porta fornita è occupata da qualche altra applicazione, proverà a stabilire la connessione sulla porta incrementata di 1, per questo viene fornito l'intervallo, cioè entro quale intervallo deve cercare una porta TCP disponibile.
connection-retries
: Se la connessione tra i nodi non riesce, allora definisce quanti tentativi devono essere effettuati per considerarlo un fallimento permanente.
connection-retry-interval
: L'intervallo tra i tentativi di connessione è definito in questo valore.
<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 sono necessarie le notifiche degli eventi tramite e-mail (solo funzionalità Enterprise), le informazioni per la relativa configurazione vengono configurate qui:
Email-notification
: Contiene tutte le informazioni relative all'indirizzo email.
Email-notification-enabled
: Abilita la notifica tramite e-mail.
Sender
: specificare l'account e-mail da cui vengono inviate le notifiche e-mail.
Smtp-server
: specificare il gateway per inviare notifiche e-mail.
Smtp-port
: il numero di porta utilizzato per inoltrare le e-mail.
SSL
: Secure Socket Layer per abilitare la sicurezza SSL.
Authentication
: Se è richiesta un'autenticazione, deve essere True.
Sender-login
: Se è richiesta l'autenticazione, specificare il nome di accesso.
Sender-password
: qui viene inserita la password di autenticazione.
Alert-Types
: specifica in quale evento deve essere generata un'e-mail automatizzata.
Cache-stop
: Se la cache viene interrotta in qualsiasi momento, viene generata una notifica e-mail.
Cache-start
: All'avvio della cache viene generata una notifica email.
Node-left
: quando un nodo server lascia il cluster o se un nodo server è inaccessibile per qualsiasi motivo, verrà inviata una notifica e-mail se questa opzione è abilitata.
Node-joined
: All'unione di qualsiasi nodo del server viene generata una notifica email.
State-Transfer-started
: per avvisare ogni volta che si è verificato un trasferimento di stato che si verifica quando viene eseguito il bilanciamento del carico, viene generata una notifica e-mail.
Cache-size
: ogni volta che la dimensione della cache viene modificata utilizzando l'applicazione a caldo, viene generata una notifica e-mail.
<sql-dependency use-default="False"/>
Questo tag XML specifica l'architettura di accodamento e di notifica SQL del servizio. (Solo aziende)
Use-default
: L'attributo può essere impostato su True/False. Se l'attributo è impostato su True, il servizio di dipendenza SQL e la coda predefiniti verranno creati in fase di esecuzione. Se l'attributo è impostato su False, il servizio di dipendenza SQL e la coda personalizzati verranno creati e utilizzati da NCache.
Vedere anche
Configurazioni lato client
Configurazione ponte
Configurazione di sicurezza