2010-05-14 17 views
7

Supponendo che ci sia un certo numero di server web con carico bilanciato in una web farm, è sicuro usare l'ora dell'app/web server nel codice dell'applicazione per ottenere la data/ora del sistema o dovremmo lasciare questa responsabilità al server del database ?In un ambiente Web farm, dovremmo basare la data/ora del sistema sui server Web o sul server del database?

Esiste la possibilità che le impostazioni di data/ora della macchina su tutti i server della webfarm non siano sincronizzate?

Se la data/ora saranno i responsabili del DBMS, come funzionerà questa strategia se abbiamo DB con cluster bilanciato del carico?

+0

Perché non lo standard UTC? –

+0

Dipende piuttosto da cosa si vuole usare il tempo. Se hai solo bisogno di sapere al minuto più vicino, allora è una domanda diversa per averne bisogno al millisecondo. –

+0

Piuttosto usa System.DateTime.UtcNow - questo eviterà qualsiasi problema che potresti incontrare se le macchine non sono tutte impostate sullo stesso fuso orario. –

risposta

3

si dovrebbe avere un Server Time (- :)

Scherzi a parte, il primo approccio è quello di assicurarsi che tutti i server utilizzano un protocollo per sincronizzare i loro orologi. Ciò ti lascerà con una nota deviazione del caso peggiore. Solo se tale deviazione è maggiore di quanto sia possibile tollerare (improbabile in una Web App) sarà necessario progettare qualcosa di speciale. Di solito il database sarà OK, ma se questo è in cluster allora potrebbe essere necessario nominare un server dedicato come custode del tempo.

Tuttavia, si noti che la precisione sarà sempre limitata dal ritardo massimo della rete.

1

Meglio solo per avere lo stesso orario impostato su tutti i server in modo da non doversi preoccupare di questo, altrimenti c'è sempre confusione sull'origine del tempo.

Se gli orologi sui server sono impostati da un server di tempo regolari, essi dovrebbero avere una precisione di 100 ms l'uno dall'altro, almeno, che probabilmente è abbastanza buono, anche se ovviamente dipende da che cosa esattamente si sta cercando di fare.

Problemi correlati