MongoDB ChangeStream ResumeToken在全球范围内是唯一的吗?

时间:2018-08-24 02:54:31

标签: mongodb changestream

正如文档(https://docs.mongodb.com/manual/changeStreams/)所述,我们可以使用resumeToken继续从MongoDB获取事件。

我会将最近的resumeToken存储到公用存储中,但是我不确定此恢复令牌是否在全球范围内唯一。 我想知道它对于整个收藏或每个收藏都是独一无二的。

它似乎使用了UUID(https://github.com/mongodb/mongo/blob/master/src/mongo/db/pipeline/resume_token.h#L61)。

谢谢

1 个答案:

答案 0 :(得分:1)

resumeToken在单个MongoDB部署群集中是唯一的。 MongoDB change streams使用全局逻辑时钟。服务器将群集时间编码为resumeToken的前缀值,从而可以按照接收到的顺序安全地解释更改流通知。

从MongoDB v4.0开始,您可以打开更改流游标以进行部署,以监视除adminlocal和{{之外的所有数据库中对所有非系统集合的更改。 1}}。