Come faccio a creare un servizio web con elevate quantità di traffico che funzioni efficacemente con molti utenti diversi? [chiuso]

-2

Ho creato servizi web prima che vengano utilizzati da un numero limitato di utenti, ma ho un nuovo progetto che avrebbe molti utenti.

Per ogni utente che utilizza i servizi, questo è quello che farebbero: 1) Chiama un metodo sul servizio web che calcola un "prezzo" in base ai parametri passati dall'utente.

2) Il metodo e l'algoritmo effettivi per calcolare e restituire un "prezzo" non è molto complicato e il runtime sarebbe molto veloce, anche se per ogni chiamata sarebbe necessaria una ricerca in una tabella di database.

3) Il problema è che questo metodo può essere chiamato più e più volte per ogni articolo che ha bisogno di un prezzo, e se molti utenti usano il servizio web (non conosco un numero esatto, diciamo 1.000 utenti , 10.000 utenti, qualunque cosa), non so a quali cose ho bisogno di pensare in termini di come gestire il traffico elevato, molti utenti che provano a usare il metodo allo stesso tempo più e più volte, estraendo dati da un tavolo più e più volte.

Quindi mi piacerebbe un consiglio da qualcuno che ha esperienza con servizi web con grandi quantità di traffico e molti utenti diversi, con il metodo che tira da una tabella di basi di dati più e più volte, per spiegarmi passaggi / cosa Devo pensare a quando progettare il servizio per evitare la congestione del traffico, a che punto un certo numero di utenti inizierebbe a rallentare il servizio, o solo cose di cui pensare / preoccuparsi, ecc.

Apprezzo qualsiasi aiuto, grazie!

    
posta kevin 25.03.2013 - 21:03
fonte

1 risposta

2

Per l'articolo 2, si può sicuramente usare una cache per evitare di andare al DB per ogni chiamata, specialmente se i dati di ricerca non sono così volatili. La durata della cache dipenderà da quanto tempo manterrai i dati. La cache potrebbe essere aggiornata in base alle proprie esigenze. Come nota a margine, la maggior parte dei DB memorizza comunque i risultati delle query comuni.

Ogni servizio ha dei limiti. Vorrei testare il servizio per vedere quante chiamate può gestire. Costruirlo definitivamente senza stato, quindi è solo questione di quante chiamate richiede un secondo. Supponiamo che i tuoi requisiti siano 1.000 chiamate al secondo e che la tua prestazione sia 400 chiamate per 1 server. Quindi hai bisogno di 3 server per soddisfare le tue esigenze. Non dovrebbe esserci alcun problema a implementare questo tipo di infrastruttura.

Non saprai con certezza il rendimento del tuo servizio fino a quando non verrà testato sulle prestazioni. Una volta ottenuti i numeri di riferimento, è possibile modificare il codice o l'ambiente per migliorare le prestazioni in base alle esigenze.

    
risposta data 25.03.2013 - 22:22
fonte

Leggi altre domande sui tag