#go #redis #cluster-computing
#Вперед #redis #кластерные вычисления
Вопрос:
Мне нужно использовать TIME Command
в Redis, но я нахожусь в режиме кластера. Теперь мой вопрос заключается в том, что является источником времени, которое я получаю из ответа системы в режиме кластера?
Спасибо.
Комментарии:
1. Я бы предположил, что, поскольку это текущее время сервера, вы получите время компьютера в кластере, на который попадает команда
2. Какой сервер? У меня есть 20 главных узлов и другие…
3. есть ли у вас отдельный часовой пояс для каждого узла?
4. Нет, тот же часовой пояс, но важно, чтобы разница во времени составляла менее 10 мс
Ответ №1:
Я нашел ответ, мне нужно использовать синхронизацию времени между серверами, и я подумал использовать Redis **TIME** Command
, но теперь, после некоторых исследований, я думаю, что NTP может решить мою проблему.
Для поддержания синхронизации NTP требуется разница во времени менее 128 мс между сервером и клиентом. Типичная точность в Интернете колеблется примерно от 5 мс до 100 мс, возможно, варьируясь в зависимости от задержек в сети
Ответ №2:
Если важна точность между узлами, вам действительно следует запустить локальный NTP-сервер где-нибудь очень близко к ним.
Это дает общую идею — https://ubuntu.com/server/docs/network-ntp [google для ntp и ваших операционных систем]
Сделайте один узел своим сервером локального времени и синхронизируйте с вашим предпочтительным поставщиком NTP в Интернете [google для поиска известных серверов ntp]
Синхронизируйте ваши локальные узлы с созданным вами локальным временным узлом ntp. Это должно обеспечить задержку выше 1 мс в зависимости от вашей инфраструктуры.
Все ваши локальные узлы должны находиться на расстоянии нескольких мс друг от друга и с одинаковым отличием от сетевого источника.