Является ли 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,

Другие вопросы по тегам