Usa il filesystem o qualche database noSql per la memoria condivisa tra processi?

2

Sto implementando un sistema che è fondamentalmente una pipeline di documenti XML: i documenti XML vengono recuperati su Internet, convalidati, ulteriormente elaborati ecc. fino a quando non vengono ingeriti in un database relazionale (non XML). Dopo l'ingestione nel database possono essere scartati.

Poiché i vari componenti della pipeline sono in qualche modo indipendenti l'uno dall'altro, voglio utilizzare un numero di applicazioni separate, ognuna delle quali esegue un "passo" nella pipeline. Quale dovrebbe essere il ragionamento alla base della scelta del file system per la condivisione dei dati tra le suddette applicazioni rispetto ad alcuni database noSQL?

I dati da condividere sono in gran parte file XML e il volume totale di dati che passa attraverso la pipeline è di circa 10 gigabyte al giorno.

    
posta Marcus Junius Brutus 16.11.2013 - 00:14
fonte

1 risposta

3

Consiglierei un qualche tipo di coda dei messaggi . Ogni documento XML entra nella coda ed è elaborato in modo asincrono da un utente. Il consumatore può quindi salvare i dati nel database o pubblicare il documento nella coda del consumatore successivo, in base alle regole impostate nel sistema.

I consumatori possono lavorare su un singolo documento alla volta o potresti persino avere più clienti che elaborano documenti in parallelo ad ogni passaggio.

Esistono numerose librerie Java per l'implementazione delle code dei messaggi:

risposta data 16.11.2013 - 00:21
fonte

Leggi altre domande sui tag