Quale è meglio chiamare: API o Database?

1

Sto costruendo un'app Web che richiama alcune API per ottenere dump di dati JSON. Sto attraversando un problema. Posso prendere tutti i dati, salvarli in un DB, quindi estrarlo dal DB, se necessario. O Posso semplicemente continuare a colpire l'API pertinente ogni volta che ho bisogno dei dati. (Ho più di 7 funzioni diverse, ognuna delle quali richiede un insieme diverso di dati di input che potrebbe essere una qualsiasi combinazione di API, mai più di tre però).

Suppongo che si dovrebbe notare che la discarica JSON cambia giornalmente. Non le chiavi, solo i valori (e il numero totale di voci). Quindi non è come un dump una tantum nel DB, dovrei aggiornare il DB ogni giorno o giù di lì.

Quindi la mia domanda è, che è meglio? Suppongo che chiamare costantemente un'API utilizzi più larghezza di banda e quindi impieghi più tempo, ma mi è stato anche insegnato che si dovrebbe evitare di fare tonnellate di richieste SQL se possibile. Per quanto posso dire, farei lo stesso numero di chiamate / richieste in entrambi i casi. Quindi in termini di velocità e larghezza di banda, quale opzione sarebbe migliore?

    
posta amflare 15.03.2016 - 16:11
fonte

1 risposta

4

Quello che stai essenzialmente chiedendo è "usare una cache o non usare una cache".

Sono strongmente inclinato a "usare una cache", ma non in mysql. Se hai la RAM per questo (e la RAM è a buon mercato al giorno d'oggi) usa una cache in-memory come Redis.

Per mantenere i dati freschi, hai due opzioni. Tenendo un timestamp lungo i dati memorizzati nella cache e quando / se è dell'ultimo giorno, vai a chiamare tutte quelle API e assembla la tua risposta, aggiorna la cache, rispondi alla risposta - fatto.

Oppure puoi eseguire un programma / servizio separato che continua ad aggiornare la cache ogni volta che è necessario.

Entrambi hanno vantaggi e svantaggi.

Aggiornamento rapido

La prima opzione sarebbe la più semplice da implementare, ma quella prima richiesta sarà più lenta di quelle successive.

Programma di aggiornamento dedicato

L'altro aggiunge complessità e più parti mobili al tuo sistema. D'altra parte, separa il tuo sistema e la parte di lettura legge solo, scrive uno scrittore dedicato e ottieni sempre risposte veloci.

La scelta è tua!

Motivi per utilizzare una cache

  1. Minore elaborazione, larghezza di banda e tempo speso sul tuo server. In altre parole, puoi servire più richieste e farlo più velocemente.
  2. Sei gentile con l'API che stai consumando, stai risparmiando tempo, denaro e potenza di elaborazione.
risposta data 15.03.2016 - 16:24
fonte

Leggi altre domande sui tag