2014-06-19 10 views
5

Sto lavorando ad una piccola app express che attualmente consente agli utenti di accedere (tramite passaporto) e vedere le informazioni relative ai loro amici, cioè cronologia degli acquisti, Mi piace, ecc. Idealmente voglio che ogni utente abbia una foto del profilo di accompagnamento e per gli elementi in la cronologia degli acquisti per avere le foto dei prodotti di accompagnamento. Un modello utente semplificata è mostrato sottoServire le immagini quando si utilizza Couchbase come app server?

{ 
    "name": "Homer Simpson", 
    "purchases": "Duff" 
} 

Se voglio una foto del profilo di andare con questo, c'è un modo semplice per farlo in Couchbase, o dovrei conservarla in qualcosa come S3 e poi avere

{ 
    "name": "Homer Simpson", 
    "profile_pic" : "http://s3.something.com/profilepics/homer.jpg", 
    "purchases": "Duff" 
} 

risposta

8

Posso darvi due argomenti sul perché non li memorizzerei nel database (Couchbase o altro).

1) Utilizzare ogni strumento per ciò che è meglio. Couchbase può servire quel documento d'esempio che dai alla sua cache gestita nella RAM. Otterrai un tempo di risposta inferiore al millisecondo. S3 è eccellente nel servire contenuti statici come le immagini. Couchbase può servire l'immagine molto velocemente anche dalla RAM? Certo, ma hai intenzione di usare più risorse per farlo e questo mi porta al mio argomento n.

2) Memorizzando l'immagine in un DB, Couchbase o in altro modo, si utilizzano le risorse più costose e performanti per qualcosa che è statico e cambia raramente. Basti pensare al costo di archiviazione su un'istanza EC2 rispetto a S3. Se dovessi archiviarlo in un database, devi archiviarlo, replicarlo, eseguirne il backup, ecc. Insieme ai tuoi dati critici. S3 è ottimo per avere una lunga durata ad un prezzo estremamente ragionevole. Le immagini in un database sembrano un'ottima idea, ma col tempo diventano catene al collo. A meno che non si inizi ora con una politica di scadenza dell'account utente, potrebbero passare 2 anni e memorizzare, eseguire il backup e replicare le immagini da un utente che ha smesso di utilizzare il servizio 1.5 anni fa e pagare per ogni KB più volte. Ancora una volta, questo non è esclusivo per Couchbase con qualsiasi mezzo.

Vai con il documento che ha il puntatore dell'immagine in S3 è la mia opinione. Otterrai il meglio di entrambi i mondi. Prestazioni ed economicità per non molto lavoro extra.

Problemi correlati