mongodb更改流事件何时从流中清除

时间:2019-06-04 12:13:33

标签: mongodb changestream

我了解到,当mongo的任何受监视实体发生更改/添加时,mongo会将这些更改记录在变更流中,应用程序可以侦听。

何时清除单个变更流事件,变更流的最大容量是多少。是否存在任何负面情况,由于最大容量限制,在将日志通知给订户之前将其从更改流中删除。

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

1 个答案:

答案 0 :(得分:2)

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

只要您关注变更流,就应该实时收到有关变更的通知。在这种情况下,oplog的大小不是问题,因为您在更改时就在使用它。

但是,更改流可以是resumed using a resume token,它指向操作日志中的特定时间戳。当操作日志已翻转时,此恢复令牌现在无效。尝试使用无效的恢复令牌恢复更改流将导致错误:

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

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