documentazione_3di_riservata:docway4:xway2elastic
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Entrambe le parti precedenti la revisioneRevisione precedenteProssima revisione | Revisione precedente | ||
documentazione_3di_riservata:docway4:xway2elastic [2017/06/27 13:49] – [Cache applicativa con Apache JCS] mbernardini | documentazione_3di_riservata:docway4:xway2elastic [Data sconosciuta] (versione attuale) – eliminata - modifica esterna (Data sconosciuta) 127.0.0.1 | ||
---|---|---|---|
Linea 1: | Linea 1: | ||
- | ====== Integrazione fra eXtraWay ed Elasticsearch ====== | ||
- | |||
- | <WRAP center round important 60%> | ||
- | Versione Elasticsearch supportata: **5.2.2** (//o superiore se mantenuta la major version//) con **JAVA 8**\\ | ||
- | </ | ||
- | |||
- | ===== Caratteristiche integrazione ===== | ||
- | |||
- | * L' | ||
- | * Per ogni archivio eXtraWay (che deve essere indicizzato su Elasticsearch) deve essere creato uno specifico indice su Elasticsearch (relazione 1-1 fra archivi eXtraWay ed indici di Elasticsearch, | ||
- | * Su eXtraWay vengono mantenuti tutti gli indici primari e i seriali, mentre ogni altro dato da indicizzare viene lasciato ad Elasticsearch | ||
- | * Tutte le scritture su eXtraWay vengono replicate sull' | ||
- | * In caso di errore in scrittura sull' | ||
- | * Ogni minuto un processo verifica la presenza di eventuali file di errore e ritenta l' | ||
- | * Le ricerche vengono realizzate: | ||
- | * Su eXtraWay se i filtri di ricerca riguardano solo campi seriali indicizzati su eXtraWay | ||
- | * Su Elasticsearch in ogni altro caso | ||
- | * Ogni ricerca in formato eXtraWay ricevuta dal broker viene opportunamente parsata e, se deve essere rediretta su Elasticsearch, | ||
- | * **N.B.**: Non esiste più il concetto di selezione conosciuto in eXtraWay. La paginazione dei risultati di una ricerca su Elasticsearch comporta una nuova esecuzione della stessa (possono quindi variare anche il numero totale di risultati) -> __Questo porta a differenze di comportamento a livello di interfaccia dell' | ||
- | * L' | ||
- | * DocWay4 (DocWay4-service) | ||
- | * 3diWS | ||
- | * MailArchiver (MSA) | ||
- | * La gestione applicativa di tutte le selezioni derivanti da query ha comportato un maggiore utilizzo di memoria da parte delle webapp (o altre applicazioni) Java. Per questo motivo è stata integrata una libreria specifica per gestire la cache applicativa (mantenimento in memoria fino ad una determinata soglia e successiva serializzazione su file system): **Apache JCS** | ||
- | |||
- | |||
- | ===== Creazione dell' | ||
- | |||
- | Per creare un nuovo indice su Elasticsearch e popolarlo con i dati contenuti in un archivio eXtraWay occorre procedere nel modo seguente: | ||
- | - Creare l' | ||
- | - Assegnare all' | ||
- | - Lanciare la procedura di importazione dati da eXtraWay | ||
- | |||
- | ==== Mapping su Elasticsearch ==== | ||
- | |||
- | L' | ||
- | |||
- | Alla pagina corrente sono stati allegati due esempi di file di mapping (relativi agli archivi DocWay e ACL): | ||
- | * File Mapping DocWay | ||
- | * File Mapping ACL | ||
- | |||
- | Esempio di comando di creazione indice su Elasticsearch: | ||
- | |||
- | < | ||
- | curl -XPUT " | ||
- | </ | ||
- | ==== Assegnazione Alias ==== | ||
- | |||
- | < | ||
- | curl -XPOST ' | ||
- | { | ||
- | " | ||
- | " | ||
- | }, | ||
- | " | ||
- | " | ||
- | } | ||
- | } | ||
- | ' | ||
- | </ | ||
- | |||
- | Per maggiori info consultare la pagina: https:// | ||
- | ==== Importazione dati da eXtraWay ==== | ||
- | |||
- | L' | ||
- | |||
- | Progetto GIT: http:// | ||
- | |||
- | Repository Nexus: **it.tredi.xway2elastic-import** | ||
- | |||
- | <WRAP center round important 100%> | ||
- | * **Il processo di importazione dati da eXtraWay ad Elasticsearch si aspetta che il nome dell' | ||
- | * E' richiesto //Java8// per l' | ||
- | </ | ||
- | |||
- | |||
- | === Configurazione === | ||
- | |||
- | I file di configurazione dell' | ||
- | |||
- | < | ||
- | # Connessione ad elasticsearch | ||
- | elasticsearch.host=127.0.0.1 | ||
- | elasticsearch.port=9200 | ||
- | elasticsearch.threads.count= | ||
- | elasticsearch.client.sniff=false | ||
- | # | ||
- | # | ||
- | elasticsearch.connectionRequestTimeout=30000 | ||
- | elasticsearch.maxRetryTimeout=30000 | ||
- | elasticsearch.socketTimeout=30000 | ||
- | |||
- | # Connessione ad eXtraWay | ||
- | xway.host=127.0.0.1 | ||
- | xway.port=4859 | ||
- | # Il nome del db eXtraWay e l' | ||
- | # come argomento del comando shell | ||
- | xway.dbname= | ||
- | |||
- | # Classe di implementazione della conversione di documenti da XML a JSON per salvataggio su Elasticsearch. Questo parametro e' obbligatorio, | ||
- | # parametro di avvio dell' | ||
- | doc2json.impl= | ||
- | # | ||
- | |||
- | # Elenco di query (e relativi ordinamenti) in base alle quali recuperare i documenti da eXtraWay per la sincronizzazione | ||
- | # su Elasticsearch | ||
- | # | ||
- | # | ||
- | # | ||
- | # | ||
- | # | ||
- | # | ||
- | #... | ||
- | # | ||
- | # | ||
- | </ | ||
- | |||
- | Per poter avviare l' | ||
- | |||
- | <WRAP center round info 100%> | ||
- | Maggiore è la distribuzione dei risultati delle query, minore sarà il tempo totale di importazione. | ||
- | </ | ||
- | |||
- | |||
- | === Utilizzo === | ||
- | |||
- | WINDOWS: | ||
- | < | ||
- | [XWAY2ELASTIC-HOMEDIR]/ | ||
- | </ | ||
- | |||
- | LINUX: | ||
- | < | ||
- | sh [XWAY2ELASTIC-HOMEDIR]/ | ||
- | </ | ||
- | |||
- | Parametri supportati: | ||
- | * **-dbname=**, | ||
- | * **-doc2json.impl=**, | ||
- | * **-titlePageSize=**, | ||
- | * **-enableXwFiles=**, | ||
- | * **-xwFileIndexByBulkRequest=**, | ||
- | * **-disableRefresh=**, | ||
- | |||
- | <WRAP center round info 100%> | ||
- | Per maggiori informazioni sui comandi di sincronizzazione dati di xway2elastic-import si rimanda al file **README.md** presente nella directory [XWAY2ELASTIC-HOMEDIR]/ | ||
- | </ | ||
- | ===== Configurazione dell' | ||
- | |||
- | ===== Cache applicativa con Apache JCS ===== | ||
- | |||
- | Il file di configurazione di Apache JSC è il seguente: | ||
- | * [APPLICATION-HOME]/ | ||
- | * [APPLICATION-HOME]/ | ||
- | |||
- | < | ||
- | # | ||
- | # http:// | ||
- | # | ||
- | |||
- | # DEFAULT CACHE REGION | ||
- | jcs.default=DC | ||
- | |||
- | jcs.default.cacheattributes=org.apache.commons.jcs.engine.CompositeCacheAttributes | ||
- | |||
- | # Numero massimo di oggetti che vengono mantenuti in memoria. Superato il limite vengono serializzati su disco (se attiva la serializzazione) o | ||
- | # rimossi (inaccessibili all' | ||
- | jcs.default.cacheattributes.MaxObjects=5000 | ||
- | |||
- | jcs.default.cacheattributes.MemoryCacheName=org.apache.commons.jcs.engine.memory.lru.LRUMemoryCache | ||
- | |||
- | # Se disattivo non viene mai rimosso nessun oggetto dalla memoria (NO serializzazione su disco) | ||
- | jcs.default.cacheattributes.UseMemoryShrinker=true | ||
- | |||
- | # Tempo di permanenza in memoria (espresso in secondi) dall' | ||
- | # rimossi (inaccessibili all' | ||
- | jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=600 | ||
- | |||
- | # Intervallo di attivazione dello shrink (controllo oggetti da serializzare) | ||
- | jcs.default.cacheattributes.ShrinkerIntervalSeconds=30 | ||
- | |||
- | # | ||
- | |||
- | jcs.default.elementattributes=org.apache.commons.jcs.engine.ElementAttributes | ||
- | |||
- | # Definisce se l' | ||
- | jcs.default.elementattributes.IsEternal=false | ||
- | |||
- | # Tempo di permanenza dell' | ||
- | jcs.default.elementattributes.IdleTime=1800 | ||
- | |||
- | # Tempo di permanenza dell' | ||
- | # | ||
- | |||
- | |||
- | # CONFIGURAZIONE PER SERIALIZZAZIONE OGGETTI SU DISCO | ||
- | |||
- | jcs.auxiliary.DC=org.apache.commons.jcs.auxiliary.disk.indexed.IndexedDiskCacheFactory | ||
- | jcs.auxiliary.DC.attributes=org.apache.commons.jcs.auxiliary.disk.indexed.IndexedDiskCacheAttributes | ||
- | |||
- | # Percorso assoluto su disco nel quale salvare gli oggetti serializzati (dovrebbe riferirsi ad una partizione su disco SSD per garantire adeguate performance) | ||
- | jcs.auxiliary.DC.attributes.DiskPath=/ | ||
- | |||
- | # Dimensione dell' | ||
- | # il caricamento di un oggetto in coda nell' | ||
- | jcs.auxiliary.DC.attributes.MaxPurgatorySize=10000 | ||
- | |||
- | # Numero massimo di chiavi che possono essere serializzate su disco (default = 5000). Superato il limite gli oggetti piu' vecchi vengono rimossi. | ||
- | jcs.auxiliary.DC.attributes.MaxKeySize=10000 | ||
- | |||
- | # Cancellazione dei dati serializzati all' | ||
- | # in precedenza sono comunque inutilizzabili dagli utenti). | ||
- | jcs.auxiliary.DC.attributes.ClearDiskOnStartup=true | ||
- | |||
- | # Definisce il numero di eliminazioni dopo le quali ottimizzare il file di cache su disco (cancellazione dal file di vecchi oggetti). Di default questa property e' disattivata (-1) | ||
- | # e comporta il continuo aumento della dimensione del file (che sara' poi ottimizzato solamente in fase di shutdown). | ||
- | jcs.auxiliary.DC.attributes.OptimizeAtRemoveCount=5000 | ||
- | </ | ||
- | |||
- | Per maggiori informazioni relative alla configurazione di Apache JCS si rimanda alla documentazione ufficiale: http:// | ||
- | |||
- | ===== Indicizzazione di Files ===== | ||
- | |||
- | <WRAP center round todo 100%> | ||
- | **TODO** | ||
- | </ | ||
/data/attic/documentazione_3di_riservata/docway4/xway2elastic.1498564195.txt.gz · Ultima modifica: (modifica esterna)