2010-05-14 6 views
7

Unter der Annahme, gibt es eine Reihe von Lastausgleich Web-Server in einer Web-Farm ist, ist es sicher, um das System Datum/Uhrzeit oder sollten wir verlassen diese Verantwortung an den Datenbankserver die app/Web-Server-Zeit in dem Anwendungscode zu verwenden, ?In einer Webfarm-Umgebung sollten wir das Systemdatum/die Systemzeit auf die Webserver oder den Datenbankserver ausrichten?

Gäbe es eine Chance, dass Maschinen-Datum/Zeit-Einstellungen auf allen Servern in dem Webfarm nicht synchron sind?

Wenn Datum/Zeitpunkt der verantwortliche des DBMS sein wird, wie wird diese Strategie funktionieren, wenn wir mit Lastenausgleich DBs gruppierten?

+0

Warum nicht Standard UTC? –

+0

Es hängt eher davon ab, wofür Sie die Zeit nutzen möchten. Wenn Sie nur auf die nächste Minute wissen müssen, dann ist es eine andere Frage, es in Millisekunden zu benötigen. –

+0

Verwenden Sie stattdessen System.DateTime.UtcNow - dies vermeidet Probleme, die auftreten können, wenn die Maschinen nicht alle auf die gleiche Zeitzone eingestellt sind. –

Antwort

3

Sie sollten einen Zeitserver haben (- :)

Im Ernst, der erste Ansatz besteht darin, sicherzustellen, dass alle Server ein Protokoll verwenden, ihre Uhren zu synchronisieren. Das wird Sie mit einer bekannten Worst-Case-Abweichung verlassen. Nur wenn diese Abweichung größer ist, als Sie tolerieren können (unwahrscheinlich in einer Web App), müssen Sie etwas Besonderes entwickeln. Normalerweise wird die Datenbank in Ordnung sein, aber wenn das gruppiert ist, dann können Sie benötigen einen dedizierten Server als der Wächter der Zeit zu ernennen.

Beachten Sie jedoch, dass Ihre Genauigkeit immer an die maximale Verzögerung des Netzwerks gebunden ist.

1

Beste gerade die gleiche Zeit auf allen Servern gesetzt haben, damit Sie es müssen keine Sorge, da sonst über immer Verwirrung, ob die Zeit kommt.

Wenn die Uhren auf den Servern regelmäßig von einem Zeitserver gesetzt werden, sollten sie mindestens innerhalb von 100ms genau sein, was wahrscheinlich gut genug ist, obwohl es natürlich davon abhängt, was genau Sie versuchen zu tun.

Verwandte Themen