5

我知道,当任何监视的 mongo 实体被更改/添加时,mongo 会将这些更改记录在更改流中,应用程序可以收听这些更改。

什么时候清除单个变更流事件,变更流的最大容量是多少。是否存在由于最大容量限制而在通知订阅者之前从更改流中删除日志的负面情况。

我在他们的官方页面中找不到任何此类数据: https ://docs.mongodb.com/manual/changeStreams/

4

1 回答 1

7

变更流使用 oplog 作为其数据的基础。因此,“最大容量”取决于您的 oplog 的大小(请参阅SERVER-13932)。

只要您关注更改流,就应该实时通知您更改。在这种情况下,oplog 的大小不是问题,因为您正在消费发生的更改。

但是,可以使用指向 oplog 中特定时间戳的恢复令牌来恢复更改流。当 oplog 翻转时,此恢复令牌现在无效。尝试使用无效的恢复令牌恢复更改流将导致错误:

resume of change stream was not possible, as the resume token was not found. {_data: <the invalid resume token>}

此时,如何进行取决于应用程序。

于 2019-06-05T01:40:51.323 回答