Должны ли мы основывать системную дату / время на веб-серверах или сервере баз данных в среде веб-фермы? - PullRequest
7 голосов
/ 14 мая 2010

Если в веб-ферме имеется несколько веб-серверов с балансировкой нагрузки, безопасно ли использовать время приложения / веб-сервера в коде приложения для получения системной даты / времени или мы должны оставить эту ответственность за базу данных? сервер

Есть ли вероятность того, что настройки даты / времени компьютера на всех серверах веб-фермы не синхронизированы?

Если дата / время будут отвечать за СУБД, как эта стратегия будет работать, если у нас есть кластеризованные БД с балансировкой нагрузки?

Ответы [ 2 ]

3 голосов
/ 14 мая 2010

У вас должен быть сервер времени (-:)

Серьезно, первый подход - убедиться, что все серверы используют протокол для синхронизации своих часов. Это оставит вас с известным наихудшим отклонением. Только если это отклонение больше, чем вы можете себе позволить (маловероятно в веб-приложении), вам нужно будет разработать что-то особенное. Обычно с базой данных все в порядке, но если она кластеризована, вам может потребоваться назначить выделенный сервер хранителем времени.

Но учтите, что ваша точность всегда будет зависеть от максимальной задержки сети.

1 голос
/ 14 мая 2010

Лучше всего просто установить одинаковое время на всех серверах, чтобы вам не приходилось об этом беспокоиться, иначе всегда возникает путаница относительно того, пришло ли время.

Если часы на серверах регулярно устанавливаются с сервера времени, они должны быть с точностью не менее 100 мс друг от друга, что, вероятно, достаточно хорошо, хотя, очевидно, это зависит от того, что именно вы пытаетесь сделать. 1003 *

...