Монго изменения метки времени
При отслеживании оплога я вижу метку времени для каждого события. У потоков изменений есть преимущества по сравнению с непосредственным отслеживанием оплога, поэтому я бы хотел их использовать. Тем не менее, я не могу найти способ выяснить, когда произошло изменение. Это было бы проблематично, если бы мой скрипт некоторое время отключался, а затем возобновлялся с использованием токена возобновления.
Есть ли способ получить эту метку времени?
1 ответ
Я не могу найти способ выяснить, когда произошло изменение.
В настоящее время (MongoDB v3.6) нет способа узнать временную метку события, возвращаемого сервером от принимающей стороны. Это связано с тем, что метка времени кластера фактически встроена в токен возобновления в виде двоичного формата.
Существует запрос на добавление инструмента для проверки этого маркера резюме SERVER-32283. Не стесняйтесь следить за обновлениями в билете.
Это было бы проблематично, если бы мой скрипт некоторое время отключался, а затем возобновлялся с использованием токена возобновления.
При возобновлении потоков изменений с помощью токена возобновления, он возобновится с этого момента. Это связано с тем, что токен содержит время кластера, а сервер знает, когда последняя операция "маркер" "увидела".
Вы также сказали down for a while
, Потоки изменений основаны на Oplog Set Replica Set, что также означает, что характер возобновляемости потоков изменений ограничен размером окна оплога.
Например, если время последнего кэшированного токена было 24 часа назад, а размер журнала операций - только 12 часов, ваше приложение не сможет использовать токен возобновления потоков изменений. Так как вы сравниваете change streams
с tailing the oplog
, в этом отношении у обоих была бы та же самая потенциальная проблема.
Если это реальная проблема для вашего варианта использования, пожалуйста, измените размер окна оплога соответственно. т. е. если у клиента-получателя будет потенциальное время простоя, превышающее время окна оплога.
Смотрите также Рекомендации по изменению производственных потоков.