Progettazione dell'archiviazione dei dati per un sito Web di e-commerce

-1

Sto cercando di capire come i siti di e-commerce gestiscono enormi quantità di spazio pubblicitario e le transazioni ad esso associate. Rispetto a questo, ho alcune domande di base.

Considera un sito di e-commerce in esecuzione su più server e l'inventario associato ad esso è piccolo e può stare all'interno di un singolo server.

Dove dovrebbe essere conservato questo inventario? In un server centralizzato o dovrebbe essere replicato in ciascun server su cui è in esecuzione l'app Web?

Considera due utenti la cui richiesta è gestita da server diversi, concorsi per lo stesso prodotto.

Se l'inventario è replicato in ciascun server, le transazioni non possono essere sincronizzate. O esiste un meccanismo di sincronizzazione che funzioni su più server?

E se l'inventario è conservato in un server centralizzato e se tutte le app Web devono interrogare questo server centralizzato, il problema è che richiede più tempo per la transazione.

In che modo i siti web risolvono il problema precedente?

Supponiamo che se l'inventario è enorme, è un modo di database distribuito per andare?

Rispetto ai database distribuiti:

  1. I database distribuiti hanno intrinsecamente meccanismi per gestire il problema precedente (contestazione per lo stesso prodotto)? E in che modo i siti di e-commerce gestivano questo problema quando non c'erano database distribuiti?

  2. È possibile distribuire un database relazionale?

  3. Un inventario tipico può essere modellato come un database non relazionale?

Capisco che queste sono alcune domande di base, sto appena iniziando a conoscere E-commerce e costruendo applicazioni web scalabili, quindi qualsiasi risorsa o materiale didattico per ottenere risposte alle domande che ho menzionato sopra è apprezzata.

    
posta karthik ts 23.03.2018 - 07:01
fonte

1 risposta

0

Sto lavorando come sviluppatore per un grande sistema di e-commerce. Stiamo usando un database (oracle) e i nodi 1..n di un backend e di un frontend. Ogni nodo ha una propria cache, stiamo usando eventi per invalidarlo all'interno di un cluster.

Consider two users whose request being handled by different servers, contest for the same product.

In soluzione, come la mia azienda sta utilizzando, le transazioni regolari sono sufficienti per gestire tale scenario.

How do websites resolve above problem?

Penso che ci siano molti approcci per gestire questo problema, che dipende anche dalla tecnologia che vorresti usare. Puoi andare come abbiamo fatto con un database o potresti optare per l'approccio microservizi o in qualche modo mischiarlo. Ogni soluzione ha vantaggi e svantaggi.

    
risposta data 23.03.2018 - 14:04
fonte

Leggi altre domande sui tag