Devo usare MongoDB per i dati di riferimento?

2

Ho bisogno di implementare una serie di microservizi che forniranno servizi di validazione e di ricerca. Ognuno di essi contiene dati di riferimento indipendenti e (essenzialmente) di sola lettura. In ogni caso, i dati si adatterebbero facilmente in un db relazionale. Data la dimensione dei dati, SQL Server probabilmente finirebbe per memorizzare nella cache i blocchi in memoria. La situazione dei dati è:

  • poca o nessuna crescita
  • aggiornamenti non frequenti
  • pochi (o nessun) join richiesti
  • piccoli database
  • centinaia o migliaia di righe

Ma ho bisogno di un accesso molto veloce.

Le comunicazioni tra i microservizi avverranno tramite chiamate Web che scambiano JSON.

Dato questo, c'è qualche vantaggio in termini di prestazioni nell'usare un db NOSQL, come Mongo, in questo caso?

SQL Server sarebbe più facile, ma è felice di andare in Mongo se c'è un motivo. Se il 95% del costo della chiamata è l'overhead della chiamata e il 5% è il recupero effettivo dei dati, la tecnologia DB probabilmente non fa molta differenza.

Ulteriori dettagli:

L'applicazione che stiamo costruendo si basa su un'architettura di microservizi con (in definitiva) 10 o 100 di servizi. La componente dei dati di base sarà significativa (informazioni dettagliate su 100.000 di membri). Sarà ospitato principalmente su SQL Server su server Windows. Dato il livello di isolamento tra i servizi, ognuno può utilizzare la tecnologia più appropriata.

Questa domanda riguarda specificamente la parte dei dati di riferimento delle cose.

    
posta dave 17.09.2015 - 01:40
fonte

1 risposta

4

Data la dimensione dei dati e la frequenza degli aggiornamenti, ritengo irrilevante la scelta del database: per ottenere un accesso molto veloce, si utilizzerà comunque il caching, che, dalla descrizione del contesto, non essere difficile da implementare per tutti i dati.

Le principali considerazioni sarebbero:

  • La struttura dei dati. È meglio rappresentato come un mucchio di tabelle o piuttosto di documenti?

  • La complessità dei dati. Se i dati sono abbastanza semplici, i Redis non sarebbero un'altra alternativa? Che dire di un file flat?

  • Affidabilità: sebbene sia SQL Server sia MongoDB consentono di replicare i dati su più server, assicurati di disporre di competenze sufficienti per configurare e configurare l'ambiente.

  • Le tue preferenze puramente soggettive. Microsoft? Oracolo? Open source? La licenza è un altro fattore importante. In produzione, SQL Server, anche la sua variante gratuita, è solitamente ospitato su Windows Server, che potrebbe diventare troppo costoso per un piccolo progetto.

risposta data 17.09.2015 - 02:20
fonte

Leggi altre domande sui tag