Является ли MongoDB ChangeStream ResumeToken уникальным во всем мире?
Как говорится в документе ( https://docs.mongodb.com/manual/changeStreams/), мы можем возобновить получение события из MongoDB с помощью resumeToken.
Я буду хранить недавнее резюме в общем хранилище, но я не уверен, является ли этот токен резюме глобальным или нет. Я хочу знать, что это уникально для целых коллекций или каждой коллекции.
Кажется, что он использует UUID ( https://github.com/mongodb/mongo/blob/master/src/mongo/db/pipeline/resume_token.h#L61)..
Спасибо
1 ответ
resumeToken
является уникальным в пределах одного кластера развертывания MongoDB. Потоки изменений MongoDB используют глобальные логические часы. Сервер кодирует время кластера как значение префикса resumeToken
В результате изменения потоков уведомлений можно безопасно интерпретировать в полученном порядке.
Начиная с MongoDB v4.0, вы можете открыть курсор потока изменений для развертывания, чтобы отслеживать изменения во всех несистемных коллекциях во всех базах данных, кроме admin
, local
, а также config
,